python - 如何提取新的子字符串作为列列

标签 python string pandas csv

我有一个 Pandas 数据框 名为:实体的列 当我通过以下方式打印专栏时:

df.entity

输出看起来像这样(我有 267 行,这只是前两行)

[(East, NNP), (India, CTR), (Company, ORG)]
[(Pasteur, ZZP)] 

如何获得输出如下的新列:

East, India, Company
Pasteur

最佳答案

选项 1
zip 和迭代器

df.assign(entity=[', '.join(next(zip(*r))) for r in df.entity])

                 entity
0  East, India, Company
1               Pasteur

选项 2
@Zero 回答的理解版本。应该更快。

df.assign(entity=[', '.join([x[0] for x in r]) for r in df.entity])

                 entity
0  East, India, Company
1               Pasteur

设置

df = pd.DataFrame(dict(
    entity=[
        [('East', 'NNP'), ('India', 'CTR'), ('Company', 'ORG')],
        [('Pasteur', 'ZZP')]
    ]))

关于python - 如何提取新的子字符串作为列列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478402/

相关文章:

python - 在 Python 中的列表之间移动项目

Python round() 太慢,更快的方法来降低精度?

regex - 如何检查字符串是否包含一组条件

python - 比较 Pandas 中两个数据框的行

python - python中有没有任何方法可以用字符串替换数据框中的nan而不影响空白单元格

python - pandas (sub)Dataframe 中的最大值和最小值

python - 为什么在计算数组的子集时,变量名称似乎有所不同?

java - java字符串中equals和compareto方法的区别

javascript - 删除 url 部分以仅保留文件名

python - Pandas 依靠柱子