python - 如何在数据框中的同一行中添加以数字开头的字符串?

标签 python pandas dataframe

我有以下数据框(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/

相关文章:

python - Pandas - 日期时间格式更改为 '%m/%d/%Y'

r - 使用分离函数和变异函数

python - Numpy,以不同顺序复制数据

python - 使用 selenium 更改 cx/cy 值

python - 雪花在Python中获取许多

python - Pandas 中的 SettingWithCopyWarning

pandas - 根据列中的信息过滤出化学数据集

Python:基于重叠项对DataFrame进行聚类

Python - 无法正确读取文本文件的第一行到列表中

python - 使用 python 中的 writerow 附加到我的 csv