我正在尝试合并两个数据帧:
控件
,用INTEGERS/STRINGS当我使用pandasmerge()
函数时,新的数据框将用NaN填充右侧的数据框,而不是列表
final_dataset = pd.merge(control, together, on="zip_code", how="left")
我期望使用两个原始数据帧中的值创建一个新的合并数据帧。相反,在新的数据框中,“control”数据框中的所有值都是正确的,但“together”数据框中的所有列表都是正确的
以下是一些样本数据:
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
如果每个数据帧的邮政编码列具有不同的类型,则可能会发生这种情况,其中一个是int64,另一个是object,例如:
a = pd.DataFrame([
{"colA": 1, "key": "1"},
{"colA": 2, "key": "2"},
{"colA": 3, "key": "3"}
])
b = pd.DataFrame([
{"colB": [25, 64, 24], "key": 1},
{"colB": [25, 64, 24], "key": 2},
{"colB": [25, 64, 24], "key": 4}
])
如果您合并这两个数据帧,您将得到
res = pd.merge(a, b, on="key", how='left')
colA key colB
0 1 1 NaN
1 2 2 NaN
2 3 3 NaN
因此,您需要确保两个数据帧中的邮政编码具有相同的类型。
我认为你在这里有一些事情要做。当你说左数据帧时,我想你的意思是它应该是左连接右?"你的意思是"一起"在样本的左边?"
我认为可以安全地假设“together”中的邮政编码是字符串而不是int。您得到的是NaN,因为它们在2个数据帧中不匹配。示例47283不等于“47283”。
此外,如果它是一个左连接,你想要一起在左边,你应该有1个NaN付款,因为如果它们是相同的数据类型,你只有2zip_codes匹配。
如果您想控制左侧,我建议您这样做(我想您是这样做的):
control = pd.DataFrame({
'payment':['Rent','Mortgage','Rent'],
'zip_code':[94053,47283,25769]
})
together = pd.DataFrame({
'age':[[25,64,24],[78, 39,35],[82,33,19]],
'zip_code':[12583,47283,25769]
})
control.merge(together,on='zip_code',how='left')
这将给你以下结果:
payment zip_code age
0 Rent 94053 NaN
1 Mortgage 47283 [78, 39, 35]
2 Rent 25769 [82, 33, 19]
正如你可以看到你有1 NaN的年龄,因为94053不在“在一起”数据帧中。
问题内容: 我正在尝试使用我的Derby数据库数据填充Netbeans GUI-builder jTable。 我在Account.java类中使用以下代码: 理想情况下,我希望能够返回其中包含参数数据和列的tableModel,因为我知道在GUI中执行此方法是一种不好的做法。在线上的所有教程都没有显示如何将数据发送到另一个类,它们只是在GUI类中执行数据库代码。 我有一个错误,它看不到数据和列,
我在Account.java类中使用以下代码: 理想情况下,我希望能够返回包含参数数据和列的tableModel,因为我知道在我的GUI中使用这种方法是不好的做法。所有在线教程都没有显示如何将数据发送到另一个类,它们只是在GUI类中执行数据库代码。 我有一个错误,它无法看到数据和列,因为它们是在我的方法的一个不可访问的部分中声明和使用的。在我完成这些之后,我需要找到一种方法来将它传递给我的GUI类
问题内容: 我有一个HTML表单,可以通过ajax保存到数据库中。为了获得键/值对的查询字符串,我使用了非常方便的函数,如下所示: 现在,我想加载一个空白表格,并用数据库中的数据重新填充它,该数据是通过ajax调用作为JSON字符串传递的。我已经能够获得具有正确键/值对的Javascript对象,如下所示: 重新填写表格的最简单,最优雅的方法是什么? 请记住,表单的输入元素是文本,选择,复选框和单
我在SQL Server 2012中有两个表 表1 表2 每个用户可以拥有1到8个权限。 我需要创建一个视图,该视图将为我提供具有8个权限条目的UserID,其中任何未使用的条目都包含null值,即条目的顺序无关紧要。 这让我很困惑,我甚至不知道从哪里开始?
series(string $value,[ string $categories]) string $value $config = ['path' => './tests']; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $
factory 辅助函数 必须 使用 factory 方法来做数据填充,因为是框架提倡的,并且可以同时为测试代码服务。 运行效率 开发数据填充时,必须 特别注意 php artisan db:seed 的运行效率,否则随着项目的代码量越来越大,db:seed 的运行时间会变得越来越长,有些项目多达几分钟甚至几十分钟。 原则是: Keep it lighting speed. 只有当 db:seed