我在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)
不幸的是,它没有用。我该如何解决这个问题?
答案 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