我无法连接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)和类型df
,DataFrame
大小(1,26),类型df_column_names
,DataFrame
大小为26,类型list_names
。
阅读其他主题后,最相似的是here和here。然而,在检查了我的两个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
提前感谢您的帮助和建议。
答案 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()
如果列名在第一行而不是第一列,则需要转置数据框,如上所述。