[英]Pandas Creating multiple data frames using for loop
我正在寻找高效的 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]]
接下来,从每个数据帧,我想用 1 替换 0 值并迭代所有数据帧:
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 循环,编写上述代码的最有效方法是什么?
如果需要使用DataFrame
列表的循环解决方案:
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)
请参考我的评论: https : //stackoverflow.com/a/64798278/9967586用于创建多个数据框并循环遍历这些 dfs
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.