我在使用groupby
根据字符串中的数值对df
进行分组时遇到了一些问题。正则表达式(\w+)_\w+
应该匹配字符串中的数字,我希望用它来组成一个组,但是我不确定如何用groupby
实现这一点。
任何帮助都将不胜感激。
数据:
import pandas as pd
df = pd.DataFrame({'x':['ab_c_1.0','ab_c_1.1','ab_c_12.0','ab_c_12.1','ab_c_123.0','ab_c_123.1']})
所需分组:
x
0 ab_c_1.0
1 ab_c_1.1
2 ab_c_12.0
3 ab_c_12.1
4 ab_c_123.0
5 ab_c_123.1
2条答案
按热度按时间ua4mk5z41#
其中一个选项是
extract
,然后三个部分请求它们的ngroup
:split
、duplicated
和cumsum
的另一个变体:如果需要将组编号分配给单独的/新的列,请使用
df["group"] = grp
。输出:
yftpprvb2#
可以使用
.str.split()
:图纸: