从.csv列表中按名称创建唯一的DataFrame

时间:2018-01-30 05:56:16

标签: python pandas

我正在尝试使用以下代码从read_csv对象列表创建pandas DataFrames。在创建DataFrame时,我还想通过替换' _data'来重命名新创建的DataFrame。与' _df'

test_data = pd.read_csv('test/path'/.csv')
train_data = pd.read_csv('train/path'/.csv')
example_data = pd.read_csv('example/path'/.csv')
more_data = pd.read_csv('more/path'/.csv')

data_list = [test_data, train_data, example_data, more_data]

for i in data_list:
    pd.DataFrame(i).rename(i.replace('_data', '_df'))

但是,由于收到此错误,上述操作无效:

TypeError: 'DataFrame' object is not callable

2 个答案:

答案 0 :(得分:0)

您可以传递字典进行重命名,键是当前列名,值是您想要的新名称

pd.DataFrame(data_list).rename({columns={'test_data':'test_df', 'train_data':'train_df'})

或只是包含所需名称的列表:

df.columns = ['test_df','train_df']

答案 1 :(得分:0)

<?php $filter = $em->getFilters()->enable("locale"); $filter->setParameter('locale', 'en'); // Disable it $filter = $em->getFilters()->disable("locale"); 接受整个DataFrame的callable。您不必逐个迭代列。熊猫为你提供。

rename

请注意此操作不会发生,因此需要将其分配给变量或赋予df.rename(columns = lambda x: x.replace('data','df')) 参数,尽管这不是最佳实践。

inplace