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 '
ValueError:无法合并具有类型
的实例的DataFrame答案 0 :(得分:1)
df=pd.concat([pd.read_csv(file) for file in os.listdir('.') if file.endswith('.csv')])
df.set_index('responseid',inplace=True)