繁体   English   中英

如何在具有多个值的列中选择部分字符串

[英]How to pick part of a string in a column with multiple values

我有一个 .tsv Dataframe 具有一个特定列,其中多个值用逗号分隔。 它看起来像这样:

     Col1         Col2         Col3

1    star1  HIP1, KOI1, Gaia1  3.4
2    star2  HIP2, KOI2, Gaia2  4.3
3    star3  HIP3, KOI3, Gaia3  7.2

我的目标是只从第 2 列中提取部分字符串值,这样我就只有一个选项,用逗号分隔。 在这种情况下,它将是 KOI。 它看起来像这样:

     Col1   Col2  Col3

1    star1  KOI1  3.4
2    star2  KOI2  4.3
3    star3  KOI3  7.2

考虑到 KOI(x) 之后的数字不遵循序数顺序(如示例中所示),有没有办法做到这一点? 我尝试使用str.lsplit()并拆分 function,但代码返回消息: 'StringMethods' object has no attribute 'lsplit' 这是我尝试过的:

for i in df['Col2']:
    df['Col2'][i] = df['Col2'].str.lsptrip(', K').str[0]

然后,当我将其隔离时,我会尝试将缺少的“K”字母添加到字符串中,但从未到达那部分。

您也可以使用pd.Series.str.extract

df['Col2']=df['Col2'].str.extract('.*, (K.*), .*')

与此相同,使用pd.Series.str.split

df['Col2']=df['Col2'].str.split(', ').str[1]

Output:

df
    Col1  Col2  Col3
1  star1  KOI1   3.4
2  star2  KOI2   4.3
3  star3  KOI3   7.2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM