gpt4 book ai didi

python-3.x - 使用循环创建多个数据框

转载 作者:行者123 更新时间:2023-12-05 03:06:44 26 4
gpt4 key购买 nike

这无疑反射(reflect)了我缺乏知识,但我在网上找不到任何帮助。我对编程很陌生。我想加载 6 个 csvs 并对它们做一些事情,然后再将它们组合起来。以下代码遍历每个文件,但只创建一个名为 df 的数据框。

files = ('data1.csv', 'data2.csv', 'data3.csv', 'data4.csv', 'data5.csv', 'data6.csv')
dfs = ('df1', 'df2', 'df3', 'df4', 'df5', 'df6')
for df, file in zip(dfs, files):
df = pd.read_csv(file)
print(df.shape)
print(df.dtypes)
print(list(df))

最佳答案

我认为您认为您的代码正在做一些实际上没有做的事情。

具体来说,这一行:df = pd.read_csv(file)

您可能会认为,在通过 for 循环的每次迭代中,都会执行和修改此行,其中 dfdfs 中的字符串替换> 和 file 被替换为 files 中的文件名。虽然后者是正确的,但前者不是。

通过 for 循环的每次迭代都读取一个 csv 文件并将其存储在变量 df 中,有效地覆盖在前一个 期间读入的 csv 文件for 循环。换句话说,for 循环中的 df 不会替换为您在 dfs 中定义的变量名。

这里的关键是字符串(例如,'df1''df2' 等)在以下情况下不能被替换和用作变量名执行代码。

实现所需结果的一种方法是将 pd.read_csv() 读取的每个 csv 文件存储在字典中,其中键是数据帧的名称(例如,'df1 ', 'df2', etc.),value是pd.read_csv()返回的dataframe。

list_of_dfs = {}
for df, file in zip(dfs, files):
list_of_dfs[df] = pd.read_csv(file)
print(list_of_dfs[df].shape)
print(list_of_dfs[df].dtypes)
print(list(list_of_dfs[df]))

然后您可以像这样引用每个数据框:

print(list_of_dfs['df1'])
print(list_of_dfs['df2'])

您可以在此处了解有关词典的更多信息:

https://docs.python.org/3.6/tutorial/datastructures.html#dictionaries

关于python-3.x - 使用循环创建多个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48888001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com