gpt4 book ai didi

python - Pandas - 迭代数据框行并更新 df(一行代码)

转载 作者:行者123 更新时间:2023-12-05 01:32:59 26 4
gpt4 key购买 nike

下面有以下代码。场景描述:

遍历具有 URL 列表的数据框发送 GET 请求。最初创建 3 个新列并根据上一个 get 请求的结果更新它们。

问题:是否有任何选项如何在一行代码中写入 3 个“df.set_value”??

提前致谢

import pandas as pd, numpy as np

d = {'ListOfURLs': ['URL1', 'URL2', 'URL3']}
df = pd.DataFrame(data=d)

#print(df)
s = requests.session()
s.post(login_url, login_data)
for index, row in df.iterrows():
r = s.get(row['ListOfURLs'])
r.status_code
if r.status_code == 200:
# Update Dataframe , create initially 3 new columns and update them based on the results from the previous get request
df.set_value(index, 'Status Code', r.status_code)
df.set_value(index, 'Result', '[OK]')
df.set_value(index, 'Error', np.nan)

最佳答案

你可以这样做:

import pandas as pd
import requests
import numpy as np

d = {'ListOfURLs': ['https://stackoverflow.com/q/65060875/4001592',
'https://stackoverflow.com/q/65060875/4001592',
'https://stackoverflow.com/q/65060875/4001592']}
df = pd.DataFrame(data=d)

for index, row in df.iterrows():
r = requests.get(row['ListOfURLs'])
if r.status_code == 200:
df.at[index, ['Status Code', 'Result', 'Error']] = (r.status_code, '[OK]', np.nan)

print(df)

输出

                                     ListOfURLs  Status Code Result  Error
0 https://stackoverflow.com/q/65060875/4001592 200.0 [OK] NaN
1 https://stackoverflow.com/q/65060875/4001592 200.0 [OK] NaN
2 https://stackoverflow.com/q/65060875/4001592 200.0 [OK] NaN

不要使用 set_value :

Deprecated since version 0.21.0: Use .at[] or .iat[] accessorsinstead.

请注意,为了生成实际输出,省略了原始问题中的一些细节。

关于python - Pandas - 迭代数据框行并更新 df(一行代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65060875/

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