gpt4 book ai didi

python - 范围(1 :len(df)) assigns NaN to last rows in dataframe

转载 作者:行者123 更新时间:2023-12-04 09:06:01 25 4
gpt4 key购买 nike

我的代码有这个奇怪的问题。我正在尝试使用此代码为我的数据框生成 Auto 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 个值之后打印了 None 。在第二次尝试中,它正常地将所有值打印到最后。但数据框在最后一行仍然是 Nan 。
可能跟内存有关系?我没有得到任何提示。请帮我解决这个问题。

最佳答案

缺失值意味着 Series 中有不同的索引值和 DataFrame ,对于正确的工作需要相同。
所以需要pass df.indexSeries构造函数:

df['id'] = pd.Series(range(1,(len(df)+1)), index=df.index).astype(str).apply('{:0>8}'.format
或分配 range 的 2 行解决方案:
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

关于python - 范围(1 :len(df)) assigns NaN to last rows in dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63446692/

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