Pandas 当我编写这段特定代码时,我的jupiter笔记本在给出任何输出(保持运行)之前需要花费很长时间
当我编写这段代码时,我的Jupiter笔记本会在提供任何输出之前持续运行大约10分钟。当然,您可以通过跳过pd.where()来提高速度 速度比较:Pandas 当我编写这段特定代码时,我的jupiter笔记本在给出任何输出(保持运行)之前需要花费很长时间,pandas,datetime,Pandas,Datetime,当我编写这段代码时,我的Jupiter笔记本会在提供任何输出之前持续运行大约10分钟。当然,您可以通过跳过pd.where()来提高速度 速度比较: for j in range(len(datelist)): tempmax.append((df.where(df['Date']==datelist[j])['Data_Value'].max())) tempmin.append((df.where(df['Date']==datelist[j])['Data_Value'].
for j in range(len(datelist)):
tempmax.append((df.where(df['Date']==datelist[j])['Data_Value'].max()))
tempmin.append((df.where(df['Date']==datelist[j])['Data_Value'].min()))
print(tempmax)
您的新代码的运行速度应大约为10倍:
df = pd.DataFrame()
df['a'] = range(16000)
df['b'] = range(16000)
%timeit df.where(df['a']==2)['b'].max()
>>> 6.31 ms ± 124 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit df[df['a']==2]['b'].max()
>>> 777 µs ± 8.14 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
也有可能使用pd.Series.agg()会加快速度:
for j in range(len(datelist)):
tempmax.append((df[df['Date']==datelist[j]]['Data_Value'].max()))
tempmin.append((df[df['Date']==datelist[j]]['Data_Value'].min()))
首先,您可以通过跳过pd.where()来提高速度 速度比较:
for j in range(len(datelist)):
tempmax.append((df.where(df['Date']==datelist[j])['Data_Value'].max()))
tempmin.append((df.where(df['Date']==datelist[j])['Data_Value'].min()))
print(tempmax)
您的新代码的运行速度应大约为10倍:
df = pd.DataFrame()
df['a'] = range(16000)
df['b'] = range(16000)
%timeit df.where(df['a']==2)['b'].max()
>>> 6.31 ms ± 124 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit df[df['a']==2]['b'].max()
>>> 777 µs ± 8.14 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
也有可能使用pd.Series.agg()会加快速度:
for j in range(len(datelist)):
tempmax.append((df[df['Date']==datelist[j]]['Data_Value'].max()))
tempmin.append((df[df['Date']==datelist[j]]['Data_Value'].min()))
df和datelist的形状是什么?df是一个由16000行组成的数据框,datelist是一个由3600个条目组成的列表。df和datelist的形状是什么?df是一个由16000行组成的数据框,datelist是一个由3600个条目组成的列表。“Series”对象没有属性“agg”--当我试图使用pd.Series.agg()我尝试通过删除pd.where()来实现,但仍然需要尽可能多的时间。您可以尝试使用.agg()方法吗?我已经更新了我的答案。这次它显示了一条消息---“DataFrame”对象没有属性“agg”,您正在运行哪个版本的pandas?pd.agg()在版本0.20中是新的'Series'对象没有属性'agg'——此错误消息显示当我尝试使用pd.Series.agg()时,我尝试通过删除pd.where()来执行此操作,但仍然需要尽可能多的时间。您可以尝试.agg()方法吗?我已经更新了我的答案。这次它显示了一条消息---“DataFrame”对象没有属性“agg”,您正在运行哪个版本的pandas?pd.agg()是0.20版中的新版本