我有几百* CSV文件,其中,当导入到大熊猫数据帧如下所示:如何将来自100个* csv文件的摘要统计信息与熊猫一个* csv结合使用?
import pandas as pd
df = pd.read_csv("filename1.csv")
df
column1 column2 column3 column4
0 10 A 1 ID1
1 15 A 1 ID1
2 19 B 1 ID1
3 5071 B 0 ID1
4 5891 B 0 ID1
B 0 ID1
6 12 B 2 ID1
7 13 C 2 ID1
8 20 C 0 ID1
9 5 C 3 ID1
10 9 C 3 ID1
每个* csv文件具有用于column4
一个唯一的ID(从而每一行具有相同的元素)。
我想创建一个新的CSV文件,其中每个文件名是一个行,保持从所述column4
ID /值和column1
和column3
的max
值。什么是最好的熊猫的方式来做到这一点?
ID1 5891 3 ....
我的想法是:
import numpy as np
import pandas as pd
files = glob.glob("*.csv") # within the correct subdirectory
newdf1 = pd.DataFrame()
for file in newdf1:
df = pd.read_csv(file)
df["ID"] = df.column4.unique()
df["max_column1"] = df.column2.max()
df["max_column3"] = df.column3.max()
newdf1 = newdf1.append(df, ignore_index=True)
newdf1.to_csv("totalfile.csv")
然而,(1)我不知道这是否是有效的;(2)我不知道知道最终csv的尺寸是否正确。另外,如何处理一个* csv丢失column1
或column3
?也就是说,它应该“传递”这些值。
这样做的正确方法是什么?
这将如何处理NA值,即如果某个csv文件不存在列? – ShanZhengYang
嗯,所以如果column3丢失,那么'max_column3'是NaN? – jezrael
是的,一些* csv文件没有colum1或column3。尽管每个人都有一个ID列4。 – ShanZhengYang