Python 2.7 高效遍历数据帧索引

Python 2.7 高效遍历数据帧索引,python-2.7,pandas,Python 2.7,Pandas,我想创建一个0..9行长的新数据帧,它有一列“avg”,第N行的值为average(old[N]['a'],old[N]['B']..old[N]['D']) 我对熊猫不太熟悉,所以我所有的想法都是关于如何做到这一点的。创建和填充新表的有效方法是什么?调用df并传递paramaxis=1以计算行平均值,然后可以将其作为数据传递给DataFramector: import pandas as pd from numpy.random import randn oldn = pd.DataFram

我想创建一个0..9行长的新数据帧,它有一列“avg”,第N行的值为average(old[N]['a'],old[N]['B']..old[N]['D'])

我对熊猫不太熟悉,所以我所有的想法都是关于如何做到这一点的。创建和填充新表的有效方法是什么?

调用df并传递param
axis=1
以计算行平均值,然后可以将其作为数据传递给
DataFrame
ctor:

import pandas as pd
from numpy.random import randn

oldn = pd.DataFrame(randn(10, 4), columns=['A', 'B', 'C', 'D'])

如果您想要特定列的平均值,请使用以下命令。否则您可以使用@EdChum提供的答案

In [128]:

new_df = pd.DataFrame(data = oldn.mean(axis=1), columns=['avg'])
new_df
Out[128]:
        avg
0  0.541550
1  0.525518
2 -0.492634
3  0.163784
4  0.012363
5  0.514676
6 -0.468888
7  0.334473
8  0.669139
9  0.736748


谢谢最后我使用了它的一个变体,向它传递了一个包含几列描述性统计数据的dict。setupDict={'mean':oiDM.mean(轴=1),'upper':(oiDM.std(轴=1)+oiDM.mean(轴=1)),'lower':(-oiDM.std(轴=1)+oiDM.mean(轴=1))}图表DM=pd.DataFrame(数据=setupDict)
oldn['Avg'] = oldn.apply(lambda v: ((v['A']+v['B']+v['C']+v['D']) / 4.), axis=1)
old['Avg'] = oldn.apply(lambda v: ((v[['A','B','C','D']]).sum() / 4.), axis=1)
print oldn
         A         B         C         D       Avg
0 -0.201468 -0.832845  0.100299  0.044853 -0.222290
1  1.510688 -0.955329  0.239836  0.767431  0.390657
2  0.780910  0.335267  0.423232 -0.678401  0.215252
3  0.780518  2.876386 -0.797032 -0.523407  0.584116
4  0.438313 -1.952162  0.909568 -0.465147 -0.267357
5  0.145152 -0.836300  0.352706 -0.794815 -0.283314
6 -0.375432 -1.354249  0.920052 -1.002142 -0.452943
7  0.663149 -0.064227  0.321164  0.779981  0.425017
8 -1.279022 -2.206743  0.534943  0.794929 -0.538973
9 -0.339976  0.636516 -0.530445 -0.832413 -0.266579