【发布时间】:2017-02-02 11:18:41
【问题描述】:
我有 2 个长度不等的 Pandas 数据帧。我在下面引用了一个示例。我的代码应该遍历第一个数据帧中苹果的值,并定位它是否存在于第二个数据帧中(第二个数据帧中总是存在一个值)。如果它找到相同的值,那么它应该将 2 个数据帧中橙子的差异存储到第一个数据帧中。我已经使用 2 个 for 循环执行了这个任务,下面也给出了。下面的代码完成了任务,但我的实际数据有 200 万个条目,第二个数据框有 800 个条目。使用 2 个 for 循环会大大降低我的程序速度。 有没有更有效的方法来完成这项任务?
trial={'apples': [2,4,1,5,3,2,1,1,4,5],'oranges': [8,5,9,4,2,6,7,5,1,3]}
trial1={'apples': [1,2,3,4,5],'oranges': [2,5,6,3,1]}
df=pd.DataFrame.from_dict(trial)
df1=pd.DataFrame.from_dict(trial1)
F=[]
for i in df.apples.index:
for j in df1.apples.index:
if df.apples.ix[i]== df1.apples.ix[j]:
F.append(df.oranges.ix[i]-df1.oranges.ix[j])
df['difference']=F
【问题讨论】:
标签: python pandas dataframe data-analysis bigdata