Jim*_*mmy 3 python dataframe pandas
我有 3 列的值是 A、B 或 C 我想比较这 3 列并给出哪个值的输出超过 1 个计数。如果计数为平局,则输出将为“-”
输入:
| col1 | col2 | col3 |
|-------|-------|-------|
| A | A | B |
| A | B | B |
| C | B | C |
| A | B | C |
Run Code Online (Sandbox Code Playgroud)
输出:
| col1 | col2 | col3 | Result|
|-------|-------|-------|-------|
| A | A | B | A |
| A | B | B | B |
| C | B | C | C |
| A | B | C | - |
Run Code Online (Sandbox Code Playgroud)
让我们尝试Counter获取最常见的元素:
from collections import Counter
def most_common():
for s in df.to_numpy():
k, v = Counter(s).most_common(1)[0]
yield '-' if v == 1 else k
df['Result'] = list(most_common())
Run Code Online (Sandbox Code Playgroud)
col1 col2 col3 Result
0 A A B A
1 A B B B
2 C B C C
3 A B C -
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |