将列表从循环迭代转换为pyhon中的df

时间:2018-03-08 17:36:01

标签: python pandas

我有一些文件,我在所有文件上运行循环并进行一些计算。我想获得一个新的df,其中包含行侧文件的名称以及每个文件在正确行中的计算值。

代码是:

results = []
file_name = '{}'
for file in folder:
    df = pd.read_csv(file_name.format(file))
    print("reading  file ", file)
    results.append(df['old_calc'])#this is the data i want to save to the new df and I need it .sum()

上面的代码没有像我们预期的那样工作:

     old calc  old calc  old calc  old calc  old calc  old calc  old calc
4           0.0         0.0         0.0         0.0         0.0         0.0   
5           0.0         0.0         0.0        59.0         0.0         0.0   
6           0.0         0.0        58.4         0.0         0.0         0.0   
7           0.0         0.0         8.4       -79.1         0.0         0.0   
8           0.0         0.0       120.9         0.0         0.0         0.0   

预期结果将是一个名为results的新df:

file1  0
file2  0
file3  187.7
file4  20.1
file5  0

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这是一种可以提取所需数据的方法:

dfs = {file: pd.read_csv(file) for file in folder}
result_dict = {k: v['old_calc'].sum() for k, v in dfs.items()}

result_df = pd.DataFrame.from_dict(result_dict, orient='index')