2016-06-08 52 views
1

下面的代码从名为'File1.csv'的ndarray中的“Value”列中生成一个和。跨多个文件在Pandas中迭代一个简单的计算

如何将此代码应用于目录中的每个文件,并将这些和放在一个名为Sum.csv的新文件中?

import pandas as pd 
import numpy as np 

df = pd.read_csv("~/File1.csv") 

df["Value"].sum() 

非常感谢!

回答

2

有可能是一个很好的方式来做到这一点熊猫Panel,但这是一个基本的Python实现。

import os 
import pandas as pd 

# Get the home directory (not recommended, work somewhere else) 
directory = os.environ["HOME"] 
# Read all files in directory, filter out non-csv 
files = [os.path.join(directory, f) 
     for f in os.listdir(directory) if f.endswith(".csv")] 
# Make list of tuples [(filename, sum)] 
sums = [(filename, pd.read_csv(filename)["Value"].sum()) 
     for filename in files ] 
# Make a dataframe 
df = pd.DataFrame(sums, columns=["filename", "sum"]) 
df.to_csv(os.path.join(directory, "files_with_sum.csv")) 

注意,内置的蟒蛇os.listdir()不明白"~/"像大熊猫那样,所以我们把它弄出来的环境地图。不推荐使用主目录,因此这使得此代码的任何采用者都有机会设置不同的路径。

+0

作品。谢谢rocconick! – user5778614