【问题标题】:How to create a new pandas df with specific values如何创建具有特定值的新熊猫 df
【发布时间】:2019-08-07 12:49:39
【问题描述】:

我有一个数据框,地址,如下所示:

    P_o_box    House_num
0        22        100
1        22        100
2        22        101
3        23        102
4        26        104

我想创建一个新的 pd.dataframe,specific_address,它只返回“P_o_Box”和“House_num”的特定值。我的代码返回一个布尔值的数据框。如何仅将地址数据帧的 VALUES 包含到我的新数据帧 specific_address 中?

specific_address = pd.DataFrame({'P_o_box': address['P_o_box'] == 22,
'House_num': address['House_num'] == 100})

【问题讨论】:

  • 你能添加你的预期输出吗?此外,实际上不需要使用构造函数创建新的 DataFrame。您可以切片然后复制以确保它是一个新对象

标签: python pandas dataframe


【解决方案1】:

使用下面的:

specific_address=df[df.P_o_box.eq(22)&df.House_num.eq(100)]
print(specific_address)

   P_o_box  House_num
0       22        100
1       22        100

编辑,换一个新的df:

new_df=pd.DataFrame({'P_o_box': df.loc[df['P_o_box'] == 22,'P_o_box'],
'House_num': df.loc[df['House_num'] == 100,'House_num']})
print(new_df)

   P_o_box  House_num
0       22      100.0
1       22      100.0
2       22        NaN

您可以使用:new_df=new_df.dropna() 删除 NaN

如果是这样,您可以将 df 名称替换为 address

【讨论】:

  • 谢谢!有没有办法通过创建一个新的数据框来做到这一点?我正在尝试将您的代码实现到我的 pandas 数据框的值部分,但出现错误。
  • @JohnLee 错误是什么?使用 pandas 这应该是最方便的方式
  • @JohnLee 编辑了我创建新 df 的答案。如果有帮助,请考虑accepting 答案,谢谢
猜你喜欢
  • 2021-07-27
  • 2019-10-13
  • 2017-06-26
  • 2018-09-25
  • 2020-03-02
  • 2019-03-14
  • 2021-09-02
  • 1970-01-01
  • 2018-09-25
相关资源
最近更新 更多