如何解决您如何使用函数汇总数据框列,并根据欧洲日期将它们分类为四分之一?
嗨,我是熊猫的新手,正在为一个具有挑战性的问题而苦苦挣扎。
我有2个数据框:
Df1
Superhero ID Superhero City
212121 Spiderman New york
364331 Ironman New york
678523 Batman Gotham
432432 Dr Strange New york
665544 Thor Asgard
123456 Superman Metropolis
555555 Nightwing Gotham
666666 Loki Asgard
和
Df2
SID Mission End date
665544 10/10/2020
665544 03/03/2021
212121 02/02/2021
665544 05/12/2020
212121 15/07/2021
123456 03/06/2021
666666 12/10/2021
我需要创建一个新的df,以总结每个城市中有多少英雄以及他们的任务将在哪个季度完成。另外请注意,日期以欧洲格式写成(天/月/年)。
我可以用以下直线总结每个城市有多少英雄:
df_Count = pd.DataFrame(df1.City.value_counts().reset_index())
哪个给我:
City Count
New york 3
Gotham 2
Asgard 2
Metropolis 1
我需要添加另一列,以列出英雄是否可以在某些季度执行任务。
Quarter 1 – Apr,May,Jun
Quarter 2 – Jul,Aug,Sept
Quarter 3 – Oct,Nov,Dec
Quarter 4 – Jan,Feb,Mar
如果Df2中的英雄ID没有任务结束日期,则计数应增加1。如果他们有结束日期,并且将其分隔为
所以最后应该看起来像这样:
City Total Count No. of heroes free in Q3 No. of heroes free in Q4 Free in Q1 2021+
New york 3 2 0 1
Gotham 2 2 2 0
Asgard 2 1 2 0
Metropolis 1 0 0 1
我想我需要使用python datetime库来获取当前日期时间。比创建一个自定义函数,我可以使用lambda将其应用于每一行。类似于以下代码:
from datetime import date
today = date.today()
q1 = '05/04/2021'
q3 = '05/10/2020'
q4 = '05/01/2021'
count=0
def QuarterCount(Eid,AssignmentEnd )
if df1['Superhero ID'] == df2['SID'] :
if df2['Mission End date']<q3:
++count
return count
elif df2['Mission End date']>q3 && <q4:
++count
return count
elif df2['Mission End date']>q1:\
++count
return count
df['No. of heroes free in Q3'] = df1[].apply(lambda x(QuarterCount))
请帮助我纠正语法或逻辑,或者让我知道是否有更好的方法来执行此操作。学习大熊猫具有挑战性,但很有趣。非常感谢您可以提供的任何帮助:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。