pandas:将一行附加到数据帧,其中的值是使用应用于选定列的用户定义公式派生的
我有一个数据帧pandas:将一行附加到数据帧,其中的值是使用应用于选定列的用户定义公式派生的,pandas,Pandas,我有一个数据帧 df = pd.DataFrame(np.random.randn(5,4),columns=list('ABCD')) 我可以使用以下方法来实现传统的计算,如mean(),sum()等 df.loc['calc'] = df[['A','D']].iloc[2:4].mean(axis=0) 现在我有两个问题 如何将公式(如exp(mean())或2.5*mean()/sqrt(max())应用于第2行到第4行的“a”列和“D”列 如何将行附加到现有的df中,其中两个值将
df = pd.DataFrame(np.random.randn(5,4),columns=list('ABCD'))
我可以使用以下方法来实现传统的计算,如mean()
,sum()
等
df.loc['calc'] = df[['A','D']].iloc[2:4].mean(axis=0)
现在我有两个问题
exp(mean())
或2.5*mean()/sqrt(max())
应用于第2行到第4行的“a”列和“D”列df
中,其中两个值将是A
和D
的mean()
,两个值将是C
和B
的特定公式结果.apply()
和lambda
函数
df.iloc[2:4,[0,3]].apply(lambda x: np.exp(np.mean(x)))
df.iloc[2:4,[0,3]].apply(lambda x: 2.5*np.mean(x)/np.sqrt(max(x)))
Q2:
您可以使用字典并将它们合并,然后将其添加为一行。
第一个是mean,第二个是一些自定义函数
ad = dict(df[['A', 'D']].mean())
bc = dict(df[['B', 'C']].apply(lambda x: x.sum()*45))
将它们结合起来:
最好让我们看看你的预期输出是什么你建议的东西,在Spark 1.6.3中也可以这样做吗我想你可以
ad.update(bc)
df = df.append(ad, ignore_index=True)