我有以下数据框(df
):
col_1 col_2 col_3 col_4
sample_001 fjsah AB 11-110
sample_002 dfshb CD 20-210
sample_003 fsvhb EF N3-303
sample_004 dfbkk GH Q4-444
sample_005 gnddl IJ 55-005
只有当 col_4
中的字符串以数字开头时,我才想将 col_3
中的字符串添加到 col_4
中的相应字符串中,例如df
如下:
col_1 col_2 col_3 col_4
sample_001 fjsah AB AB11-110
sample_002 dfshb CD CD20-210
sample_003 fsvhb EF N3-303
sample_004 dfbkk GH Q4-444
sample_005 gnddl IJ IJ55-005
我能够识别哪些 col_4
字符串以数字开头:
for n in df['col_4']:
if n[0].isdigit():
print(n)
但我不知道如何在 for 循环中进行“选择性合并”
最佳答案
您可以使用 Series.str[0].str.isdigit()
创建一系列 bool 值,指示每行中的第一个字符是否为数字,您可以使用此与 .loc
一起屏蔽以修改值:
df.loc[df['col_4'].str[0].str.isdigit(), 'col_4'] = df['col_3']+df['col_4']
# df
col_1 col_2 col_3 col_4
0 sample_001 fjsah AB AB11-110
1 sample_002 dfshb CD CD20-210
2 sample_003 fsvhb EF N3-303
3 sample_004 dfbkk GH Q4-444
4 sample_005 gnddl IJ IJ55-005
关于python - 如何在数据框中的同一行中添加以数字开头的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73898459/