【发布时间】:2019-11-30 21:42:30
【问题描述】:
我正在尝试合并两个数据框:
- 第一个数据帧
control填充有 INTEGERS/STRINGS - 左边的数据框一起填充了 INTEGERS/LISTS。
当我使用 pandas merge() 函数时,新数据框用 NaN 填充正确的数据框,而不是列表
final_dataset = pd.merge(control, together, on="zip_code", how="left")
我期望一个新的合并数据帧,其中包含两个原始数据帧的值。相反,在新数据框中,“控制”数据框中的所有值都是正确的,但“一起”数据框中的所有列表都是 NaN
这是一些示例数据:
control together
------------------------------- -------------------------------
payment zip_code age zip_code
Rent 94053 [25, 64, 24] 12583
Mortgage 47283 [78. 39, 35] 47283
Rent 25769 [82, 33, 19] 25769
这是最终数据集的样子:
final_dataset
-----------------------------------------------------------
zip_code payment age
47283 Mortgage NaN
25769 Rent NaN
【问题讨论】:
-
请提供一些示例数据。
-
当您执行内部联接
how='inner'时,您会获得任何价值吗?可能是 id 不匹配。 -
@iuvbio 添加了一些示例代码
-
@minanmafi 您应该使用
pd.merge(control, together, on="zip_code", how="inner")检查您是否得到任何结果并将其添加到问题中。如果没有,那么您的zip_code值实际上并不相同。 -
请提供
control.zip_code.dtype和together.zip_code.dtype的输出
标签: python pandas dataframe merge null