我是Python新手,使用if语句进行for循环时遇到问题。
我的数据帧包含Name
,Age
,Member
(是/否)和BMonth
(出生月):
Name Age Member BMonth
Billy 2 Y Jan
Anne 4 Y Jan
Frank 5 Y Jan
Greg 6 Y Jan
Jane 7 Y Jan
Charlie 3 Y Feb
Mike 3 N Jan
Joe 8 N Jan
...
我正尝试添加一个符合以下条件的新列CMonth
(“庆祝月”):
预期结果:
Name Age Member BMonth CMonth
Billy 2 Y Jan Jan
Anne 4 Y Jan Jan
Frank 5 Y Jan Jan
Greg 6 Y Jan Jan
Charlie 3 Y Feb Feb
Jane 7 Y Jan Feb
Mike 3 N Jan Feb
Joe 8 N Jan Feb
...
我尝试过:
count = {}
for month in range(1,13):
for i in df['Name']:
if count[month] < 5:
df['CMonth'] = df['BMonth']
count[month] = count[month] + 1
else if count[month+1] < 5:
df['CMonth'] = df['BMonth']
count[month+1] = count[month+1] + 1
答案 0 :(得分:0)
最好在多列上使用pandas groupby()
。我将给您提示,而不仅仅是显示代码。您也应该尝试编写代码,这将帮助您澄清问题中的歧义:
groupby()
的哪些列,然后执行自定义的sort_values()
?ungroup()
之后然后在groupby(['CMonth','Member'])
之后再最后是.head(4)