从列值中拆分并获取字符串的一部分,然后根据pandas python中的值生成新列

2024-10-01 11:20:31 发布

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

我有一个这样的字符串作为df中一列的值。在

ttt-OPP/MKKL-7/LNFFF-74/OOOP-71/AAD-1/RRR-232
ttt-OPP/MKKL-7/LNFFF-89/OOOP-71/AAD-1/RRR-232

如何使用此列的一部分获取新列。我需要的是

^{pr2}$

Tags: 字符串dftttooopoppaadrrrpr2
3条回答

^{}允许您根据分隔符(这里是/-)将字符串分解为一个部分列表。在

s = 'ttt-OPP/MKKL-7/LNFFF-74/OOOP-71/AAD-1/RRR-232'
print s.split('/')[2].split('-')[1]
# 74

使用^{}将其应用于列

^{pr2}$

输出

                                              a   b
0  ttt-OPP/MKKL-7/LNFFF-74/OOOP-71/AAD-1/RRR-232  74
1  ttt-OPP/MKKL-7/LNFFF-89/OOOP-71/AAD-1/RRR-232  89

注意:用@A-Za-z的溶液,比我的快。在

假设数据帧名为df,列col:

 df['sub_col'] = pd.Series([s[21:23] for s in df['col'].values], index=df.index)

如果这是测向仪

    val
0   ttt-OPP/MKKL-7/LNFFF-74/OOOP-71/AAD-1/RRR-232
1   ttt-OPP/MKKL-7/LNFFF-89/OOOP-71/AAD-1/RRR-232

你可以用str.提取物在

^{pr2}$

你得到了

    val                                             num_val
0   ttt-OPP/MKKL-7/LNFFF-74/OOOP-71/AAD-1/RRR-232   74
1   ttt-OPP/MKKL-7/LNFFF-89/OOOP-71/AAD-1/RRR-232   89

相关问题 更多 >