合并来自同一目录的两个相同的CSV - Python

时间:2014-03-10 21:12:25

标签: python csv pandas dataframe

我在CSV中有两个具有相同结构的数据框。我想读取两个CSV并合并它们以创建一个更大的数据帧。在目录中只有两个数据帧。

第一个CSV称为“第一个”:

ad   7   8
as   5   8
ty   9   y

第二个CSV被称为“第二个”:

ewtw   5   2
as     1   2
ty     4   9

我的代码是:

  import os
  import pandas as pd

  targetdir = "C:/Documents and Settings/USER01/Mis documentos/experpy"



  filelist = os.listdir(targetdir) 

  for file in filelist :
      df_csv=pd.read_csv(file) 
      big_df = pd.concat(df_csv)

不幸的是,它没有用。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

concat采用系列的列表或词典:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.tools.merge.concat.html,所以你可以做的是制作一个数据帧列表并将它们连接在一起以制作你的大df:

filelist = os.listdir(targetdir) 

df_list=[]
big_df=None
for file in filelist :
    df_list.append(pd.read_csv(file))

big_df = pd.concat(df_list,ignore_index=True)

或者你可以追加:

filelist = os.listdir(targetdir) 

big_df=None
for file in filelist :
    big_df.append(pd.read_csv(file), ignore_index=True)

我认为你应该改变你的道路:

targetdir = r'C:\Documents and Settings\USER01\Mis documentos\experpy'

以上使用原始字符串可以避免在Windows系统上对斜杠进行模糊解析

答案 1 :(得分:0)

如果您只有两张CSV,那么您可能只想使用pd.merge

first = pd.read_csv( 'first.csv' ) # insert your file path
second = pd.read_csv( 'second.csv' ) 
big_df = (first, second, how='outer') # union of first and second