我对python非常陌生,这里我有一个问题我不知道如何解决,请帮助。在
事情是这样的:我有一个dataframe,我想提取一个满足两个不同条件的列。在
列如下:
state gender year name births
13299 AK F 2013 Emma 57
13300 AK F 2013 Sophia 50
13301 AK F 2013 Abigail 39
13302 AK F 2013 Isabella 38
13303 AK F 2013 Olivia 36
13304 AK F 2013 Charlotte 34
13305 AK F 2013 Harper 34
13306 AK F 2013 Emily 33
13307 AK F 2013 Ava 31
13308 AK F 2013 Avery 30
5742631 WY M 2013 Emmett 5
5742632 WY M 2013 Jesse 5
5742633 WY M 2013 Jonah 5
5742634 WY M 2013 Jude 5
5742635 WY M 2013 Kaden 5
5742636 WY M 2013 Kaleb 5
5742637 WY M 2013 Kasen 5
5742638 WY M 2013 Kellan 5
在这个dataframe中有大约90K行,我想返回'name'的值,其中'gender'列尽可能均匀地分布到'M'和'F'。在
或者换句话说:我想在“出生”列包含相同数量的“M”和“F”的条件下返回“name”的值。在
抱歉,我是Python新手,我在这上面耽搁了很长时间。 我试着把数据帧分成两个不同的数据帧,然后这样做,但我发现这有点不可能。在
任何建议都将不胜感激。在
我已经定义了
df1
以进一步处理。我将索引设置为['name', 'gender']
,然后unstack
将“gender”放入列中。.births
关注出生。然后我把最小值除以最大值,以避免被零除。在这应该给你一个排序的数据帧,根据这个数据帧,名称的比率最接近于1。在
pandas中的Pivot表在这里工作得很好:
这将返回一个dataframe,名称作为索引,M,F表示列。男女通用的名字不太可能完全相同,所以你可以改为多条件的
^{pr2}$相关问题 更多 >
编程相关推荐