2024-10-03 23:23:04 发布
网友
我有一个DataFrame对象,我正在按一些键分组并计算结果。问题是,我想替换DataFrame列的一个索引来表示计数之间的关系
DataFrame
df.groupby(['A','B', 'C'])['C'].count().apply(f).reset_index()
我正在寻找一个f,它用A和B的值#timesC==1 / #timesC==0替换列C
f
A
B
#timesC==1 / #timesC==0
C
这就是你想要的吗
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
这就是你想要的吗
结果:
相关问题 更多 >
编程相关推荐