我有这样一个数据帧:

Fruit   | Drink | Napkin
------------------------
Banana  | Coke  | No
Apple   | No    | Red
Kumquat | Beer  | White
No      | No    | Green

我想把这些栏目合并成一个新的栏目,但这是我遇到的问题,我必须跳过"否",即制作:

Fruit   | Drink | Napkin | Combined
-----------------------------------
Banana  | Coke  | No     | Banana, Coke
Apple   | No    | Red    | Apple, Red
Kumquat | Beer  | White  | Kumquat, Beer, White
No      | No    | Green  | Green

我可以找到很多关于合并专栏的建议,但没有关于如何在跳过nos的同时做到这一点的建议.

推荐答案

你可以用replace个"不"来表示"不",用stack来表示"不",然后加上GroupBy.agg:

df['combined'] = (df
 .replace('No', pd.NA)
 .stack()
 .groupby(level=0)
 .agg(','.join)
 )

输出:

     Fruit Drink Napkin            combined
0   Banana  Coke     No         Banana,Coke
1    Apple    No    Red           Apple,Red
2  Kumquat  Beer  White  Kumquat,Beer,White
3       No    No  Green               Green

Python相关问答推荐

阅读Polars Python中管道的函数定义

在使用Guouti包的Python中运行MPP模型时内存不足

Pandas 填充条件是另一列

Pydantic 2.7.0模型接受字符串日期时间或无

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

在vscode上使用Python虚拟环境时((env))

Python+线程\TrocessPoolExecutor

如何根据一列的值有条件地 Select 前N组?

如何在图中标记平均点?

OpenCV轮廓.很难找到给定图像的所需轮廓

Gekko中基于时间的间隔约束

使用__json__的 pyramid 在客户端返回意外格式

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

递归函数修饰器

Python将一个列值分割成多个列,并保持其余列相同

使用python playwright从 Select 子菜单中 Select 值

如何设置nan值为numpy数组多条件

比较两个有条件的数据帧并删除所有不合格的数据帧

如何在Python中从html页面中提取html链接?

将数字数组添加到Pandas DataFrame的单元格依赖于初始化