以下代码从"值"生成一个总和。 ndarray中的列名为' File1.csv'。
如何将此代码应用于目录中的每个文件,并将总和放在名为Sum.csv的新文件中?
import pandas as pd
import numpy as np
df = pd.read_csv("~/File1.csv")
df["Value"].sum()
非常感谢!
答案 0 :(得分:2)
使用pandas 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"))
请注意,内置的python os.listdir()并不像pandas那样理解"~/"
,所以我们将它从环境贴图中删除。不建议使用主目录,因此这使得该代码的任何采用者都有机会设置不同的路径。