python - Python - Pandas - GroupBy 条件字符串加法
问题描述
目前,在对数据框进行分组时,我无法设置设置列表和过滤的组合。
假设我们有一个如下形式的 DataFrame:
A B C
0 x2 a32cd 1
1 x1 a11aa 0
2 x1 NaN 1
3 x1 d75dd 0
4 x1 a11aa 1
5 x2 a32cd 1
6 x2 w22xz 0
...
我正在寻找的是对列A
(字符串)进行分组,然后列出(字符串)的非重复、非空值,B
我可以删除列表C
(整数)。我正在寻找的最终形式是这样的:
A B
0 x1 [a11aa, d75dd, ...]
1 x2 [a32cd, w22xz, ...]
我正在考虑以某种方式设置它:
df_x.groupby('A')['B'].apply(list)
然后对其应用一些条件,但我似乎找不到它。我应该为它设置一个功能吗?我来自基于 MATLAB 的背景,所以我倾向于逐行遍历整个 DataFrame。但有人告诉我,一旦你考虑在 Pandas 中这样做,可能会有更聪明的方法来做到这一点。
解决方案
>>> df.dropna().groupby("A")["B"].unique()
A
x1 [a11aa, d75dd]
x2 [a32cd, w22xz]
dtype: object
推荐阅读
- html - 为什么绝对定位元素要考虑边距?
- python - 根据时间序列中的先前值和后续值将值替换为 NaN
- common-lisp - Lisp plist 仅在符号的属性列表单元格的上下文中?
- javascript - 点击事件上的 jQuery Mobile listview 小部件不会为 Mobile 触发
- vba - VBA代码根据页码更改多个文件中的单词页脚
- keyboard - ERGODOX - ORYX 中的下划线字符在哪里?
- r - 如何在r中纵向连接/附加数据框的列
- kotlin - 这段代码中关于 Kotlin 的 lambda 的语法是什么?
- multithreading - 当线程被调度在不同的 CPU 内核上时,预期的内存语义(例如写入后读取)会发生什么情况?
- python-3.x - Python 中的动态类创建:TypeError: __init__() 采用 1 个位置参数,但给出了 2 个