将标题列表连接到pandas

时间:2018-04-29 09:07:28

标签: python pandas dataframe append concatenation

我无法连接2个简单的DataFrames。我上传了一个包含数据集的.txt文件,然后是另一个包含前一个数据集header的文件。

首先我上传了2个DataFrames:

df = pd.read_csv(file_dir + file_name, sep = ',', header = None, encoding = 'latin-1', low_memory = False)
df_column_names = pd.read_csv(file_dir + file_name_cols, sep = ',', header = None, encoding = 'latin-1', low_memory = False)

之后,我首先通过转置表格并将其转换为list来创建标题DataFrame的{​​{1}}:

list

然后,我最终创建了所需的list_names = df_column_names.T.values.tolist()

DataFrame

但是我收到以下错误消息:

  

ValueError:长度不匹配:预期的轴有26个元素,即新值   有1个元素

我的物品的尺寸是: df.columns = list_names 大小(204,26)和类型dfDataFrame大小(1,26),类型df_column_namesDataFrame大小为26,类型list_names

阅读其他主题后,最相似的是herehere。然而,在检查了我的两个DataFrames的索引之后,两者似乎都没问题:

list

In [4]: print(df.index) RangeIndex(start=0, stop=205, step=1) In [5]: print(df_column_names.index) RangeIndex(start=0, stop=1, step=1) In [6]: len(list_names) Out[6]: 26 的外观如下:

list_names

提前感谢您的帮助和建议。

1 个答案:

答案 0 :(得分:1)

您的list_names列表。要求是有一个单一的列表。

您需要修改此行:

list_names = df_column_names.T.values.tolist()

对此:

df_column_names = df_column_names.transpose() # transpose dataframe if necessary
list_names = df_column_names[0].tolist()

如果列名在第一行而不是第一列,则需要转置数据框,如上所述。