来自multi groupby的Python新列

问题描述 投票:0回答:1

我有一个简化的数据框,可以说:

df = pd.DataFrame({'Letter': ['A', 'B', 'A', 'B','A','B','A','B'], 'T/F': [True, True, False, False,True,False,True,False], 'Number':[5, 6, 7, 8, 9,10,11,12]})

我还有其他df2,该df2已经具有(isAB或isTF)的列。我想要做的是使我的新列像df2.loc [:,'A_True]一样,其平均值为A和True。如果我执行以下操作:

df.groupby(['Letter','T/F'])['Number'].mean()[1::2]

此输出

Letter  T/F 
A       True    8.333333
B       True    6.000000
Name: Number, dtype: float64

我希望我的df2包含一个仅是8.33333,6的列。是否需要合并?我正在尝试节省时间,而不是]]

 for name,group in df.groupby('Letter'):
     df2.loc[df['Letter']==A,'A_True'] = group.loc[group['T/F'==True],'Number'].mean()

我有一个简化的数据框,可以说:df = pd.DataFrame({'Letter':['A','B','A','B','A','B','A' ,'B'],'T / F':[True,True,False,False,True,False,True,False],'Number':[5,6,7,8,9,10,11,12 ]})...

python pandas pandas-groupby
1个回答
0
投票

您可以在之前过滤

© www.soinside.com 2019 - 2024. All rights reserved.