使用切片和数据帧系列作为结尾的子字符串

2024-04-26 17:54:13 发布

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

我有一个这样的数据帧:

Blockquote

df  
Out[458]:

    strings
0  lui sau chun  
1  d1420152  
2  98764879333  
3  minglee    
4  g1927384  
5  hannah  

我想做的是为strings列中的每个值提取字符串的2/3。如您所见,每个字符串的长度不同,因此要分割的2/3rds位置也不同。我的目标输出如下所示:

Blockquote

^{pr2}$

我试过了:

x=(df['strings'].str.len()*2/3).apply(np.floor).astype(int)
df['strings'].str.slice(0,x) 

但这只是给了我以下的输出:

Blockquote

Out[451]: 
0   NaN
1   NaN
2   NaN
3   NaN
4   NaN
Name: strings, dtype: float64

有人能帮忙吗?在

谢谢你


Tags: 数据字符串dfnanoutstringsstrblockquote
1条回答
网友
1楼 · 发布于 2024-04-26 17:54:13

更好的方法是使用^{}和计数lens并按[]索引选择:

print (df['strings'].apply(lambda x: x[:int(len(x)*2/3)]))
0    lui sau 
1       d1420
2     9876487
3        ming
4       g1927
5        hann
Name: strings, dtype: object

另一种解决方案:

首先创建新列,然后使用apply为process by rows创建apply

^{pr2}$

相关问题 更多 >