如何使用更好的解决方案而不是遵循代码?在有很多列的大数据集中,这段代码花费了太多的时间
import pandas as pd
df = pd.DataFrame({'Jan':[10,20], 'Feb':[3,5],'Mar':[30,4],'Month':
[3,2],'Year':[2016,2016]})
# Jan Feb Mar Month Year
# 0 10 3 30 3 2016
# 1 20 5 4 2 2016
df1['Antal_1']= np.nan
df1['Antal_2']= np.nan
for i in range(len(df)):
if df['Yaer'][i]==2016:
df['Antal_1'][i]=df.iloc[i,df['Month'][i]-1]
df['Antal_2'][i]=df.iloc[i,df['Month'][i]-2]
else:
df['Antal_1'][i]=df.iloc[i,-1]
df['Antal_2'][i]=df.iloc[i,-2]
df
# Jan Feb Mar Month Year Antal_1 Antal_2
# 0 10 3 30 3 2016 30 3
# 1 20 5 4 2 2016 5 20
我不清楚在不是2016年的情况下你想做什么,所以我把值定为100。举个例子,我就能完成。如果只是NaNs,那么可以从下面删除前两行。在
通过使用
df.apply
而不是迭代行,您应该可以看到边际加速:相关问题 更多 >
编程相关推荐