熊猫使用for循环创建多个数据框

SuhwanWin

我正在寻找有效的Python代码以:

1.创建多个数据框2.遍历多个数据框

例如,在我的代码中:

os.chdir(EU_path)
csv_files = glob.glob(EU_path + '\*.csv')
list_EU_data = []
for filename in csv_files:
    data = pd.read_csv(filename)
    list_EU_data.append(data)

list_EU_data是来自10个欧洲国家的产品销售的10个csv文件的列表。例如,list_EU_data[0]返回包含与销售信息相关的列的数据框。

在这里,我想在预处理数据帧的同时创建多个数据帧,例如,

首先选择列

EU[0] = list_EU_data[0].iloc[:, [0, 1]]
EU[1] = list_EU_data[1].iloc[:, [0, 1]]
...continues...
EU[9] = list_EU_data[9].iloc[:, [0, 1]]

接下来,从每个数据帧中,我想将0值替换为1并迭代所有数据帧:

EU[0].iloc[:, 1] = EU[0].iloc[:, 1].replace(0, 1)
EU[1].iloc[:, 1] = EU[1].iloc[:, 1].replace(0, 1)
...continues...
EU[9].iloc[:, 1] = EU[9].iloc[:, 1].replace(0, 1)

使用for循环,编写以上代码的最有效方法是什么?

耶斯列尔

如果需要使用DataFrames列表的循环解决方案

for i, df1 in enumerate(EU):
    df1 = df1.iloc[:, [0, 1]]
    df1.iloc[:, 1] = df1.iloc[:, 1].replace(0, 1)
    EU[i] = df1

也可以更改您的代码:

os.chdir(EU_path)
csv_files = glob.glob(EU_path + '\*.csv')
list_EU_data = []
for filename in csv_files:
    data = pd.read_csv(filename)
    data = data.iloc[:, [0, 1]]
    data.iloc[:, 1] = data.iloc[:, 1].replace(0, 1)
    list_EU_data.append(data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章