在datafram中将指定的字符串分配到它们自己的列中

2024-06-06 19:56:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有可能做我想做的事。我现在正在使用

df.loc[df.T_LOSS_DESC.str.contains("slip", na=False)]

它定位T_LOSS_DESC列,然后在该列中的任何位置返回特定单词,如“slip”。我的第一个问题是,是否要将结果放在自己的专栏中?如果是这样的话,他们是否需要指定多个可能的关键字来查找?例如

 df.loc[df.T_LOSS_DESC.str.contains("slip,Slip,Slipped", na=False)]

这样做可行吗?或者我只能使用一个参数

我的数据帧的外观:

         T_LOSS_DESC 
1 Bob was running and Slipped
2 Jeff got burnt by the sun
3 James went for a walk

我希望我的数据框看起来像是,如果它在我正在查看的列中找到匹配项,我希望它将匹配项放在不同的列中

因此,我的最终数据帧如下所示:

         T_LOSS_DESC                          Slippery
1 Bob was running and Slipped        Bob was running and Slipped  
2 Jeff got burnt by the sun
3 James went for a walk

因此,由于只有一个字符串与我在专栏中寻找的字符串匹配,因此它会将这一匹配带入一个名为Slood的新专栏

提前谢谢


Tags: and数据dfrunningdesclocbobna
1条回答
网友
1楼 · 发布于 2024-06-06 19:56:09

IIUC:

In [95]: df['new'] = df.loc[df.T_LOSS_DESC.str.contains("slip|Slip|Slipped", na=False)]

In [96]: df
Out[96]:
                   T_LOSS_DESC                          new
0  Bob was running and Slipped  Bob was running and Slipped
1    Jeff got burnt by the sun                          NaN
2        James went for a walk                          NaN

或者,您可以这样做:

In [116]: df.loc[df.T_LOSS_DESC.str.contains("slip|Slip|Slipped", na=False), 'Slippery'] = df.T_LOSS_DESC

In [117]: df
Out[117]:
                   T_LOSS_DESC                     Slippery
0  Bob was running and Slipped  Bob was running and Slipped
1    Jeff got burnt by the sun                          NaN
2        James went for a walk                          NaN

相关问题 更多 >