gpt4 book ai didi

python - Pandas 数据框/Python : How to update dataframe cell value using for loop at each iteration in python?

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:40 24 4
gpt4 key购买 nike

我有一个包含 2 列的 pandas 数据框(UserId,RandNo)。在此 UserId 中有 10 行的值,如下所示

enter image description here

现在,我通过 for 循环填充 RandNo 列,如下所示。

import pandas as pd
import random

df=pd.read_csv('df_sto.csv', skipinitialspace=True)

rand=0
for index, row in df.iterrows():
try:
rand=random.randint(0,100)

df.at[index, 'RandNo'] = rand
except Exception as e:
print(e)
df.to_csv("df_sto1.csv", sep=',')

在这里,我仅获取 df_sto1.csv 文件中的更新值,df_sto.csv 中的更新值不受影响。

如果数据框行很大,并且在 df.iterrows() 中更新 95% 的行后 for 循环遇到任何问题: for 'df_sto.csv' 那么我想重复该过程形成 0% 本身(从第 0 行本身开始)。为了避免这个问题,我想更新每个 for 循环迭代本身的 'df_sto.csv' 数据框,而不是通过 df.to_csv("df_sto1.csv", sep=',')

指导我在每次迭代本身中使用 for 循环更新数据框单元格值。提前致谢。

最佳答案

我认为 try block 根本没有必要,但如果你坚持使用它,也许操作不仅仅是分配随机数,那么将它包装在一个函数中怎么样?

import pandas as pd
import random

df=pd.read_csv('df_sto.csv', skipinitialspace=True)
copy_df = df.copy()

def update_df(frame):
for index, row in frame.iterrows():
rand=random.randint(0,100)
frame.at[index, 'RandNo'] = rand

return frame


status = 0
while status == 0:
try:
copy_df = update_df(copy_df)
status = 1
except Exception as e:
copy_df = df
print(e)


df = copy_df
df.to_csv("df_sto1.csv", sep=',')

关于python - Pandas 数据框/Python : How to update dataframe cell value using for loop at each iteration in python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55154328/

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