gpt4 book ai didi

Python Pandas : zfill for rangeIndex

转载 作者:行者123 更新时间:2023-12-01 02:58:27 25 4
gpt4 key购买 nike

我想为新的 pandas 数据帧生成运行索引(例如 A00055、A00056...)。我尝试使用 zfill 用零填充我的字符串,但似乎无法让它工作。我的代码:

df.reset_index()
entry_id = 55
df['ref'] = "A" + (df.index + entry_id).map(str) # how do I include zfill(5) here?
print(df['ref']) # output: A55, A56...

如何做到这一点?非常感谢任何帮助!

最佳答案

您可以通过构造正确长度的 Index 对象来构造新列,然后使用 astype(str) 转换为 str然后调用str.zfill(5)并在前面加上字母“A”:

In[62]:
df['ref'] = 'A' + pd.Index(np.arange(entry_id, len(df.index) + entry_id)).astype(str).str.zfill(5)

df

Out[62]:
0 ref
0 -0.284920 A00055
1 -0.264921 A00056
2 0.190505 A00057
3 -0.594822 A00058
4 0.501090 A00059
5 0.696072 A00060
6 0.221020 A00061
7 0.565674 A00062
8 2.193464 A00063
9 -0.013642 A00064
10 -0.197993 A00065
11 2.200986 A00066
12 -2.239770 A00067
13 0.976282 A00068
14 0.712886 A00069
15 0.691492 A00070
16 1.112054 A00071
17 -0.536423 A00072
18 -1.551099 A00073
19 -0.679287 A00074

这里它构造了一个Index,传递一个使用np.arange构造的numpy,该numpy从entry_id开始并以现有索引的长度结束再次加上entry_id。然后我们使用 astype 进行转换,然后使用 str.zfill 并在前面添加“A”

您还可以使用 RangeIndex 来执行此操作,它提供了更紧凑的版本:

df['ref'] = 'A' + pd.RangeIndex(entry_id, len(df.index) + entry_id).astype(str).str.zfill(5)

关于Python Pandas : zfill for rangeIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com