首页 > 解决方案 > 子集熊猫数据框并在一行中分配不同的列

问题描述

我有一个熊猫数据框:

>>> df
  product company code
0      P1      C1    X
1      P2      C2    X
2      P3      C3    Y
3      P4      C4    Z
4      P5      C5    C

我想选择代码列productcompany的值等于的位置X。最后,有不同的列名。所以输出看起来像:

>>> df
  product_name parent_company
0      P1      C1    
1      P2      C2    

因为只有P1P2XCode栏。

我有使用 for 循环的解决方案。什么是最时尚的方式来实现这一目标?

标签: pythonpython-3.xpandas

解决方案


考虑query在一次调用中链接所有内容:

new_df = (df.query("code == 'X'")
            .reindex(columns=['product', 'company'])
            .set_axis(['product_name', 'parent_company'], axis='columns', inplace=False)
         )

推荐阅读