pandas 向DataFrame列中的元素添加公共字符串前缀以获取预定义的字符串长度

9njqaruj  于 2023-10-14  发布在  其他
关注(0)|答案(2)|浏览(150)

我有一个DataFrame的例子:

df = 

sample_id    data_sample
  1              0.9
  12             0.4
  178            0.8
  300            0.2

我正在尝试创建一个新列sample_id_full,其中包含更新后的样本名称,并附加一个公共前缀,该前缀的格式需要为“ANOW”,其中包括样本ID。sample_id_full的长度必须为5。
最后的DataFrame应该是

df = 

sample_id   sample_id_full    data_sample
  1                A0001          0.9
  12               A0012          0.4
  178              A0178          0.8
  300              A0300          0.2

我已经尝试了一个for循环来检查sample_id的长度,并附加一个长度为X的前缀来获得最终的字符串长度= 5,但这似乎效率很低。有更好的办法吗?

3wabscal

3wabscal1#

尝试使用str.zfill()

df.assign(sample_id_full = df['sample_id'].astype('str').str.zfill(4).radd('A'))

输出量:

sample_id  data_sample sample_id_full
0          1          0.9          A0001
1         12          0.4          A0012
2        178          0.8          A0178
3        300          0.2          A0300
h5qlskok

h5qlskok2#

另一种可能的解决方案是使用f-strings

df.assign(sample_id_full = [f'A{x:04d}' for x in df.sample_id])

输出量:

sample_id  data_sample sample_id_full
0          1          0.9          A0001
1         12          0.4          A0012
2        178          0.8          A0178
3        300          0.2          A0300

相关问题