Pandas 通过合并同一文件夹中的多个CSV创建单个数据帧

Pandas 通过合并同一文件夹中的多个CSV创建单个数据帧,pandas,dataframe,merge,Pandas,Dataframe,Merge,ValueError:无法将DataFrame与类型为的实例合并ValueError:无法将DataFrame与类型为所有csv的实例合并;s有相同的列吗?不,除了索引'responseid'df=pd.concat[pd.read_csvfile for file in os.listdir.'if file.endswith.csv']df.set_index'responseid',inplace=truel之外,它们有不同的列名。我为之前没有清除而道歉。这里的每个数据帧都有不同的行数,所


ValueError:无法将DataFrame与类型为的实例合并

ValueError:无法将DataFrame与类型为所有csv的实例合并;s有相同的列吗?不,除了索引'responseid'df=pd.concat[pd.read_csvfile for file in os.listdir.'if file.endswith.csv']df.set_index'responseid',inplace=truel之外,它们有不同的列名。我为之前没有清除而道歉。这里的每个数据帧都有不同的行数,所以我想知道concat是否有帮助。发布两个不同形状的df示例及其预期输出
files = [f for f in os.listdir('.') if os.path.isfile(f)]

listdf = []

for f in files:

    filename, ext = os.path.splitext(f)

    if ext == '.csv':

        listdf.append(filename)

        filename = pd.read_csv(filename + '.csv', index_col='responseid')

listdf

interim_df = reduce(lambda x, y: pd.merge(x, y, on='responseid'), listdf)

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\rpy2-2.9.4-py3.6-win-amd64.egg\rpy2\robjects\pandas2ri.py:191: FutureWarning: from_items is deprecated. Please use DataFrame.from_dict(dict(items), ...) instead. DataFrame.from_dict(OrderedDict(items)) may be used to preserve the key order.

  res = PandasDataFrame.from_items(items)
       ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-18-71b6f0ea0884> in <module>
 55 listdf
 56 
--->     57 interim_df = reduce(lambda x, y: pd.merge(x, y, on='responseid'), listdf)
   in <lambda>(x, y)
 55 listdf
 56 
---> 57 interim_df = reduce(lambda x, y: pd.merge(x, y, on='responseid'), listdf)

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\pandas\core\reshape\merge.py in merge(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)
 59                          right_index=right_index, sort=sort, suffixes=suffixes,
 60                          copy=copy, indicator=indicator,
---> 61                          validate=validate)
 62     return op.get_result()
 63 

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\pandas\core\reshape\merge.py in __init__(self, left, right, how, on, left_on, right_on, axis, left_index, right_index, sort, suffixes, copy, indicator, validate)
522         if not isinstance(left, DataFrame):
523             raise ValueError('can not merge DataFrame with instance of '
--> 524                              'type {left}'.format(left=type(left)))
525         if not isinstance(right, DataFrame):
526             raise ValueError('can not merge DataFrame with instance of '
df=pd.concat([pd.read_csv(file) for file in os.listdir('.') if file.endswith('.csv')]) 
df.set_index('responseid',inplace=True)