python - Python - 检查几列并比较字符串
问题描述
假设我在下面有一个数据框。
a b c
0 one two three
1 three one two
我想让第 0 行和第 1 行被视为同一个列表?或其他东西,因为即使顺序不同,两行都包含“一”、“二”、“三”。
我是否应该创建一个新列来存储 a、b、c 列中的所有字符串,例如,
a b c d
0 one two three one two three
1 three one two three one two
然后比较 d 列的第 0 行和第 1 行?
在此之后,我想做 .groupby('d') ,结果,'一二三'和'三一二'不能分开。
我想不出解决这个问题的方法,需要帮助。
解决方案
在加入之前对每行中的单元格进行排序以创建分组字符串。
使用 apply with axis=1 来逐行应用这个函数。
df['d'] = df.apply(lambda x: ' '.join(x.sort_values()), axis=1)
# outputs:
a b c d
0 one two three one three two
1 three one two one three two
grouping byd
会将两行放在同一个组中。例子:
df.groupby('d').agg('count')
a b c
d
one three two 2 2 2
推荐阅读
- c# - 检查表是否包含元素
- php - 使用 GD 库无法正确调整图像大小
- java - 这是java的BUG吗?
- ffmpeg - FFmpeg:从“amerge”更改为“amix”可以在 safari 浏览器上播放视频,但为什么不能用 amerge 播放?
- javascript - 在 JavaScript 或 NodeJS 中使用 eval 作为原型方法名称
- azure - Jenkins Active Choices 参数与 Docker 以获取 Azure 标记
- python - 无法通过 url 删除。仅通过直接单击按钮
- c# - c# 转换字典
> 到词典 - php - PHP ImageMagick - 如何使用自动选择的字体大小功能在行和块内居中
- r - 如何将我的点与 geom_line() 连接起来?