我的代码有这个奇怪的问题。我正在尝试使用此代码为我的数据框生成自动ID
df['id'] = pd.Series(range(1,(len(df)+1))).astype(str).apply('{:0>8}'.format
现在,len(df)等于799734,但df ['id']是第77998行之后的Nan
我尝试使用以下方法打印值:
[print(i) for i in range(1,(len(df)+1))]
首次尝试在77998值后打印“无”。第二次尝试将所有值正常打印到末尾。但数据框的最后一行仍然是Nan。
可能与记忆有关吗?我没有任何提示。请帮我解决这个问题。
遗漏值意味着在不同的索引值Series
,并DataFrame
为正确的工作需要相同。
因此需要传递df.index
给Series
构造函数:
df['id'] = pd.Series(range(1,(len(df)+1)), index=df.index).astype(str).apply('{:0>8}'.format
或2行解决方案,分配range
:
df['id'] = range(1,(len(df)+1))
df['id'] = df['id'].astype(str).apply('{:0>8}'.format
或在DataFrame中创建默认的索引值,例如Series
:
df = df.reset_index(drop=True)
df['id'] = pd.Series(range(1,(len(df)+1))).astype(str).apply('{:0>8}'.format
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句