python - 从 Pandas 中的现有 df 创建新的 df - python

标签 python pandas

优化的 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/

相关文章:

python - 在这种情况下如何配置 __init__.py?

python - Scrapy - 上传到 S3 时如何为一个项目中的多个文件 URL 设置自定义路径?

python - 获取单词与字典映射的所有结果

python - Pandas 数据框中满足特定条件的所有行的平均值

python - psutil.test() 返回无。如何将其输出写入文件?

python - 属性错误: 'module' object has no attribute 'DATABASE' when using scrapy shell

python - Pandas 在连接后重新计算索引

python - 使用多个变量/输入查询数据框列

Python Pandas - 即使数据帧中存在相同的列,pd.merge 上也会出现 KeyError

python - 将 Pandas 数据框保存到 csv 时,如何保留 columns.name?