python - Pandas 将列与特定值进行比较
问题描述
我创建了一个用字符串填充的数据框。“日期”值是唯一的,其他列有重复的内容
d = {'Date':['1','2','3','4','5'],
'col1':['a','a','b','b','b','e'],
'col2':['c','c','c','c','d','f']}
df = pd.DataFrame(data=d)
print(df)
Day col1 col2
0 1 a c
1 2 a c
2 3 b c
3 4 b c
4 5 b d
5 6 e f
我想选择一行并测试它的值在所有剩余行中重复了多少。我想出的唯一逻辑测试总是返回 False。
chosen = df.loc[df['Date'] == '3']
print(chosen)
Day col1 col2
2 3 b c
df['Result'] = 0
for i in chosen.columns[1:]:
print(i)
df['Result'] += np.where(df[i].equals(chosen[i]),1,0)
print(df)
Day col1 col2 Result
0 1 a c 0
1 2 a c 0
2 3 b c 0
3 4 b c 0
4 5 b d 0
5 6 e f 0
预期输出:
Day col1 col2 Result
0 1 a c 1
1 2 a c 1
2 3 b c 2
3 4 b c 1
4 5 b d 1
5 6 e f 0
实现这一目标的最佳方法是什么?我可以创建仅具有“选择”值的列,然后逐列比较,但我猜这种方法对于数十列和数千行来说会很慢。
解决方案
你只需要这一行:
chosen = len(df.loc[df['Date'] == '3'])
推荐阅读
- github - 我如何知道我发布的 github 操作被使用了多少次?
- c# - 使用 Linq 取消选中所有复选框
- drupal - Drupal Commerce 按价格排序不起作用
- python-3.x - (Discord.py) 从附件 url 读入图片并显示
- python - 忘记模块路径
- node.js - 测量请求和响应快递的大小
- nginx - 如何通过更改 url 名称 Nginx 来保护 phpMyAdmin?
- flutter - 使用“gmailSaslXoauth2”获取不正确的用户名和密码异常
- html - 根据角度(setvalue)中的先前日期选择器自动设置日期选择器值
- python - 使用for循环在y轴上绘制数据框的多列?