优化的 pandas 命令应该是什么,用于从只有 1 列名为 val 的现有数据框创建新数据框,并进行以下转换。
输入:
1_2_3
1_2_3_4
1_2_3_4_5
输出:
2
2_3
2_3_4
删除第一个下划线(包括_)之前的所有内容,并删除最后一个_(包括_)之后的所有内容
最佳答案
您可以使用 str.replace
使用匹配字符的正则表达式,直到并包括第一个 _
和从最后一个 _
到字符串的末尾,将这两个部分替换为空:
df['val'] = df['val'].str.replace('^[^_]*_(.*)_[^_]*$', r'\1')
输出:
val
0 2
1 2_3
2 2_3_4
如果您想要新数据框中的单个列,可以使用 to_frame
将其转换为一个列:
df2 = df['val'].str.replace('^[^_]*_(.*)_[^_]*$', r'\1').to_frame()
关于python - 从 Pandas 中的现有 df 创建新的 df - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66165933/