如何处理数据帧的输出?

2024-10-03 23:23:04 发布

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

我有一个DataFrame对象,我正在按一些键分组并计算结果。问题是,我想替换DataFrame列的一个索引来表示计数之间的关系

df.groupby(['A','B', 'C'])['C'].count().apply(f).reset_index()

我正在寻找一个f,它用AB的值#timesC==1 / #timesC==0替换列C


Tags: 对象dataframedfindex关系count计数reset
1条回答
网友
1楼 · 发布于 2024-10-03 23:23:04

这就是你想要的吗

import pandas as pd
import numpy as np

df = pd.DataFrame(
     {'A':[1,2,3,1,2,3],
      'B':[2,0,1,2,0,1],
      'C':[1,1,0,1,1,1]
      })
print(df)

def f(x):
    if np.count_nonzero(x==0)==0:
        return np.nan
    else:
        return np.count_nonzero(x==1)/np.count_nonzero(x==0)

result = df.groupby(['A','B'])['C'].apply(f).reset_index()
print(result)

结果:

#df
   A  B  C
0  1  2  1
1  2  0  1
2  3  1  0
3  1  2  1
4  2  0  1
5  3  1  1

#result
   A  B    C
0  1  2  NaN
1  2  0  NaN
2  3  1  1.0

相关问题 更多 >