所以我有一个"Player"
对象列表,每个对象都有一个 ID,被调用players
,我正在尝试使用 JSONlite 访问包含与相关 ID 相关的信息的 Web JSON。
HTML 词干是:' https://fantasy.premierleague.com/drf/element-summary/ '
我需要访问每个玩家各自的页面。
我正在尝试这样做:
playerDataURLStem = 'https://fantasy.premierleague.com/drf/element-summary/'
for (player in players) {
player_data_url <- paste(playerDataURLStem,player@id,sep = "")
player_data <- fromJSON(player_data_url)
# DO SOME STUFF #
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到错误Error in open.connection(con, "rb") : Timeout was reached: Resolving timed out after 10000 milliseconds
。每次运行代码时都会在我的玩家列表中的不同位置产生此错误,当我检查导致错误的网页时,我看不到任何错误。这让我相信有时页面只需要超过 10000 毫秒的时间来回复,但使用
options(timeout = x)
Run Code Online (Sandbox Code Playgroud)
对于某些人来说x
,似乎并没有让它等待更长时间的响应。
对于最小的工作示例,请尝试:
playerDataURLStem = 'https://fantasy.premierleague.com/drf/element-summary/'
ids <- c(1:540)
for (id in ids) {
player_data_url <- paste(playerDataURLStem, id, …
Run Code Online (Sandbox Code Playgroud) 我在尝试着:
我正在使用 a在共享内存中multiprocessing.Manager()
创建一个(用于存储结果),并使用 a来存储/共享我想要读取的数据帧。dict
Namespace
import multiprocessing
import pandas as pd
import numpy as np
def add_empty_dfs_to_shared_dict(shared_dict, key):
shared_dict[key] = pd.DataFrame()
def edit_df_in_shared_dict(shared_dict, namespace, ind):
row_to_insert = namespace.df.loc[ind]
df = shared_dict[ind]
df[ind] = row_to_insert
shared_dict[ind] = df
if __name__ == '__main__':
manager = multiprocessing.Manager()
shared_dict = manager.dict()
namespace = manager.Namespace()
n = 100
dataframe_to_be_shared = pd.DataFrame({
'player_id': list(range(n)),
'data': np.random.random(n),
}).set_index('player_id')
namespace.df = dataframe_to_be_shared
for i in range(n):
add_empty_dfs_to_shared_dict(shared_dict, i)
jobs = []
for i …
Run Code Online (Sandbox Code Playgroud) 我有一个大约50列和> 100行的pandas数据帧.我想选择列'col_x'
,'col_y'
在哪里'col_z' < m
.有一个简单的方法来做到这一点,类似于df[df['col3'] < m]
和df[['colx','coly']]
,但结合起来呢?