我有一个关于熊猫的问题,
我有以下代码按州分组并对字符串“Measure name”中包含单词“Death”的行数求和,
state_grp = df.groupby(['State'])
state_grp['Measure name'].apply(lambda x: x.str.contains('Death').sum())
结果:
状态 | 总和 |
---|---|
AK | 123 |
直流电 | 24 |
但在获得结果后,我想应用另一个关于州首字母缩略词的条件,例如,如果州包含字母 A,则将“总和”乘以 2。
最终结果:
状态 | 总和 |
---|---|
AK | 246 |
直流电 | 24 |
我再次尝试使用 .apply(lambda x: ..) 但没有得到我想要的,
我是 pandas 新手,我想了解如何做到这一点以用于学习目的。
分组/求和后,您可以使用
.str.contains()
创建布尔掩码,然后在 df.loc[]
中使用此掩码:
mask = df["State"].str.contains("A")
df.loc[mask, "Sum"] *= 2
print(df)
打印:
State Sum
0 AK 246
1 DC 24