如何使用函数迭代python中数据框的每两列?

Posted

技术标签:

【中文标题】如何使用函数迭代python中数据框的每两列?【英文标题】:How to iterate over every two columns of a data frame in python using a function? 【发布时间】:2021-10-07 05:19:46 【问题描述】:

我必须阅读一个 excel 文件,并对其每两列进行一些处理,并最终将它们垂直连接到一个两列数据框中。

我为第 0 列和第 1 列编写流程, 现在我正在努力生成一个函数来对所有两组列执行相同的操作。

我首先从excel中选择了前两列,如下所示

  data1 = pd.read_excel('Book2.xlsx', usecols=[0,1],parse_dates=True)

如何从列 (0,1) (2,3) (4,5) (6,7) 生成 data1 到 data5 并执行 pd.concat([data1,data2,data3,data4,data5])

我无法剪切 Excel 文件,但它看起来像

      stocks = [('2021-01-04', 113.4377, '2021-01-04','Nan'),
           ('2021-01-07', 125.8316, '2021-01-07',127.8212),
           ('2021-01-14', 108.4792, '2021-01-14',111.0318),
           ('2021-01-21', 99.584, '2021-01-21',144.6129),
            ]
df = pd.DataFrame(stocks,columns =['DateA', 'StockA', 'DateB', 'StockB'])
df

【问题讨论】:

你能分享你想要的输出吗? 【参考方案1】:

您可以读取整个数据集,在 df.columns 上循环并将所有数据集保存在字典中:

data = pd.read_excel('Book2.xlsx', parse_dates=True)

d=

for i in range(5):
    d['data_' + str(i+1)] = data[data.columns[i*2:i*2+2]]

最后连接所有数据集:

result = pd.concat([i for i in d.keys()])

【讨论】:

很遗憾,我无法遵循您的代码。如果用“df”更改代码中的“数据”,我的问题中的示例。如何返回每个 'data_' + str(i+1) 谢谢

以上是关于如何使用函数迭代python中数据框的每两列?的主要内容,如果未能解决你的问题,请参考以下文章

如何在数据框的每一行上应用函数?

如何在 Python 中创建具有两列作为元组或 Pandas 数据框的单个变量?

python pandas dataframe:将函数返回元组分配给数据框的两列

如何使用点绘制熊猫数据框的两列

在Pandas中,我如何将一个函数应用到数据框的某一行,其中行中的每一项都应该作为参数传递给函数?

将函数应用于两列并将输出映射到新列[重复]