熊猫在其他列中计算具有相同值的列的平均值

2024-09-30 01:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的测向仪:

headings = ['foo','bar','qui','gon','jin']
table = [[1,1,3,4,5],
         [1,1,4,5,6],
         [2,2,3,4,5],
         [2,2,4,5,6],
         ]
df = DataFrame(columns=headings,data=table)

    foo bar qui gon jin
0   1   1   3   4   5
1   1   1   4   5   6
2   2   2   3   4   5
3   2   2   4   5   6

我要做的是,当某一列有相似的值时,我要求所有列的值的平均值,例如,我要平均所有具有类似“bar”值的列,然后创建一个包含答案的数据帧。我尝试了以下方法:

^{pr2}$

它输出我想要的:

bar foo gon jin qui
0   1.00E+00    1.00E+00    4.50E+00    5.50E+00    3.50E+00
1   2.00E+00    2.00E+00    4.50E+00    5.50E+00    3.50E+00

但是,当我用另一个值为的列尝试此操作时,它不会输出我想要的:

for i in df['qui'].loc[1:2]:
    newDf = newDf.append(df[df['foo'] == i].mean(axis=0),ignore_index=True)

生产

    bar foo gon jin qui
0   NAN NAN NAN NAN NAN
1   NAN NAN NAN NAN NAN

你能帮我一下吗?在

附带问题:如何防止新数据帧的列按字母顺序排序?是否可以保持原始数据帧的顺序?在


Tags: columns数据dataframedfdatafoo顺序table

热门问题