Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas:concat多个.csv文件并返回聚合了同名列的数据帧_Python_Pandas_Csv_Concat - Fatal编程技术网

Python Pandas:concat多个.csv文件并返回聚合了同名列的数据帧

Python Pandas:concat多个.csv文件并返回聚合了同名列的数据帧,python,pandas,csv,concat,Python,Pandas,Csv,Concat,我有100个csv文件。每个文件包含的列可能在其他.csv文件中,也可能不在其中。我需要将所有csv文件合并为一个文件,并对具有相同列名的所有列求和。下面是一个包含两个csv文件的示例,但假设它最多可以包含100个csv文件: 第一个csv文件: User col1 col2 col3 col4 col5 ....colX A 1 1 1 2 6 5 B 4 5 6 7 23 6 C

我有100个csv文件。每个文件包含的列可能在其他.csv文件中,也可能不在其中。我需要将所有csv文件合并为一个文件,并对具有相同列名的所有列求和。下面是一个包含两个csv文件的示例,但假设它最多可以包含100个csv文件:

第一个csv文件:

 User  col1 col2 col3 col4 col5 ....colX
 A     1    1     1    2    6        5
 B     4    5     6    7    23       6
 C     4    6     1    2     4       4
第二个csv文件

User  col1 col2 col3 col4 col5 ....colY
 A     1    1     5    3    2       3
 B     20   4     3    9    6       4 
 C     2    1     4    3    4       1
User   col1   col2    col3   col4   col5 ....colX colY
 A     1+1    1+1     1+5    2+3    6+2       5    3
 B     4+20   5+4     6+3    7+9    23+6      6    4
 C     4+2    6+1     1+4    2+3    4+4       4    1
结果数据帧

User  col1 col2 col3 col4 col5 ....colY
 A     1    1     5    3    2       3
 B     20   4     3    9    6       4 
 C     2    1     4    3    4       1
User   col1   col2    col3   col4   col5 ....colX colY
 A     1+1    1+1     1+5    2+3    6+2       5    3
 B     4+20   5+4     6+3    7+9    23+6      6    4
 C     4+2    6+1     1+4    2+3    4+4       4    1
我尝试了以下方法来合并csv,但是列没有聚合

csvArray = []
for x in range(1,101): 
   csvArray.append(pd.read_csv("myCsv"+str(x)+".csv"))

full_df = pd.concat(csvArray).fillna(0)

您可以按
User
列创建索引,并按第一级使用
sum

csvArray = []
for x in range(1,101): 
   csvArray.append(pd.read_csv("myCsv{}.csv".format(x), index_col=['User']))
或:


在您的解决方案中,应按
用户
列进行聚合:

full_df = pd.concat(csvArray).fillna(0).groupby('User', as_index=False).sum()

您可以按
User
列创建索引,并按第一级使用
sum

csvArray = []
for x in range(1,101): 
   csvArray.append(pd.read_csv("myCsv{}.csv".format(x), index_col=['User']))
或:


在您的解决方案中,应按
用户
列进行聚合:

full_df = pd.concat(csvArray).fillna(0).groupby('User', as_index=False).sum()
您也可以尝试:

data = pd.DataFrame()
for x in range(1, 101):
    df = pd.read_csv('mycsv'+str(x)+'.csv').set_index('User')
    data = data.add(df, fill_value = 0).fillna(0)
您也可以尝试:

data = pd.DataFrame()
for x in range(1, 101):
    df = pd.read_csv('mycsv'+str(x)+'.csv').set_index('User')
    data = data.add(df, fill_value = 0).fillna(0)

@用户5844628-不客气!如果我的回答有帮助,别忘了接受它。@user5844628-不客气!如果我的回答有帮助,别忘了接受它。