我肯定在这里错过了一些简单的事情。尝试在熊猫中合并具有相同列名的两个数据框,但右侧的数据框具有一些左侧没有的列,反之亦然。
>df_may
id quantity attr_1 attr_2
0 1 20 0 1
1 2 23 1 1
2 3 19 1 1
3 4 19 0 0
>df_jun
id quantity attr_1 attr_3
0 5 8 1 0
1 6 13 0 1
2 7 20 1 1
3 8 25 1 1
我试着加入外部联接:
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer")
但这产生了:
Left data columns not unique: Index([....
我还指定了一个要连接的单列(例如on =“ id”),但是它复制了除“
id”以外的所有列,例如attr_1_x,attr_1_y,这并不理想。我也将整个列列表(有很多)传递给了“ on”:
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer", on=list(df_may.columns.values))
产生:
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
我想念什么?我想获得一个带有所有行附加的df,并在可能的情况下填充attr_1,attr_2,attr_3,而不显示它们的NaN。这似乎是用于数据处理的非常典型的工作流程,但我遇到了麻烦。
提前致谢。
我认为在这种情况下concat
,您想要的是:
In [12]:
pd.concat([df,df1], axis=0, ignore_index=True)
Out[12]:
attr_1 attr_2 attr_3 id quantity
0 0 1 NaN 1 20
1 1 1 NaN 2 23
2 1 1 NaN 3 19
3 0 0 NaN 4 19
4 1 NaN 0 5 8
5 0 NaN 1 6 13
6 1 NaN 1 7 20
7 1 NaN 1 8 25
通过传递axis=0
,您将df堆叠在一起,我相信这是您想要的,然后NaN
在它们各自的df所没有的地方产生价值。
问题内容: 我有两个表(表A和表B)。 它们具有不同的列数-假设表A具有更多列。 如何合并这两个表,并为表B没有的列获取空值? 问题答案: 为具有较少列的表添加额外的列作为null
我肯定错过了一些简单的东西。尝试合并熊猫中的两个数据帧,它们的列名基本相同,但右边的数据帧有一些左边没有的列,反之亦然。 我已尝试使用外部联接进行联接: 但这会产生: 我还指定了一个要连接的列(例如,on="id"),但这会重复所有列,除了"id",如attr_1_x、attr_1_y,这并不理想。我还传递了整个列列表(有很多)到on: 其产生: 我错过了什么?我想得到一个附加了所有行的df,并且
我有两个不同的DataFrames,我想合并与和列。我看到有一些线程,但我找不到我的问题的解决方案。我也读了这份文件,并尝试了不同的组合,但是,不工作得很好。 我的两个不同数据帧的示例, 正如您在两个数据帧中看到的,以开始,我想加入,这基本上是匹配的日期和时间。到目前为止,我使用前面的线程和上面提到的文档尝试了许多不同的组合。例如,, 这是右DataFrame的值。我知道,我不必同时使用和列,但是
问题内容: 我有2个数据框: restaurant_ids_dataframe 和 restaurant_review_frame 我想使用熊猫中的DataFrame.join()命令将这两个DataFrame加入一个单一的数据框中。 我尝试了以下代码行: 但是,当我尝试这样做时,出现以下错误: 我对熊猫很陌生,不知道就执行join语句而言我在做什么错。 任何帮助将非常感激。 问题答案: 您可以使
问题内容: 我可以在其他具有相同列名的数据框的右边追加一个数据框吗 问题答案: 您可以像这样连接两个数据框。 如果您正在寻找联盟,则可以执行以下操作。 Spark 2.0,已重命名为
问题内容: 我正在使用下面的代码合并两个csv(数据帧): 我有以下CSV文件 文件1: 文件2: 合并后 如果您注意到student_id的开头附加了0,应该将其视为文本,但是在合并并使用函数后,它将其转换为数字并删除了前导0。 即使在to_csv之后,如何将列保持为“文本”? 我认为它的to_csv函数可以再次保存为数字添加了dtype = {‘student_id’:str}。 问题答案: