python - 仅保留具有逗号分隔列表的数据框单元格中两个连字符之间的字符

标签 python regex pandas

我有一个数据库,例如。

Name    Subset
Apple   -AI-,-BI-A,-XC-,ZX-
Bat     -po-,-IJ-,-IA-B

并想将其转换为:

Name    Subset
Apple   AI,BI,XC,ZX
Bat     po,IJ,IA

即删除第一个连字符并删除第二个连字符和后面的字符,直到出现下一个逗号。

最佳答案

使用Series.str.splitSeries.explodeSeries.groupby.agg:

In [2193]: df['Subset'] = df.Subset.str.split(',').explode().str.split('-').str[:2].apply(''.join).groupby(level=0).agg(','.join)

In [2194]: df
Out[2194]: 
    Name       Subset
0  Apple  AI,BI,XC,ZX
1    Bat     po,IJ,IA

关于python - 仅保留具有逗号分隔列表的数据框单元格中两个连字符之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71409935/

相关文章:

python - 推荐用于本地网络应用程序的 python 库/框架?

regex - 如何删除当前行中的最后一个单词,但前提是下一行出现模式?

python - 列索引器中的 bool 表达式 (Pandas) 'is' 运算符不起作用

python - 计算一年中两个日期之间的年龄,其中一列具有单个日期而另一列具有 python 中的日期列表

python - 将 pandas 列表列转换为矩阵表示(一次热编码)

python - 作为用户而非 root 在大型 SVD 上出现 Numpy 段错误

python - 如何安装 Trac 插件以及什么是 python egg?

python - 在 python 中查找嵌套字典中的值之和

regex - 用正则表达式替换字符串中第一次出现的 ","

python - 如何只提取括号之间的字符串部分?