首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas Python -基于多个条件提取行。包含的数据示例

Pandas Python -基于多个条件提取行。包含的数据示例
EN

Stack Overflow用户
提问于 2020-10-06 05:37:59
回答 1查看 27关注 0票数 0

我正在尝试根据条件从dataframe1提取行到dataframe2,但我正在努力,有人可以帮助我吗?那就太棒了。

dataframe1:

代码语言:javascript
运行
复制
df1 = pd.DataFrame([[1001, 'democrat',0.23],[1001, 'republican',0.7],[1001, 'others',0.07],[1003, 'democrat',0.33],[1003, 'republican',0.44],[1003, 'others',0.23]], columns=['Fips_code', 'Partisan', 'Vote_Pct'])

dataframe2:

代码语言:javascript
运行
复制
df2 = pd.DataFrame([[1001],[1003], [1005]], columns=['Fips_code'])

我想根据FIPS码条件在dataframe2中添加三列('democrat_vote_pct','republican_vote_pct','others_vote_pct'),如下所示。

所需输出:

代码语言:javascript
运行
复制
df2 = pd.DataFrame([[1001,0.23,0.7,0.07],[1003,0.33,0.44,0.23], [1005, NA, NA, NA]], columns=['Fips_code','democrat_vote_pct','republican_vote_pct','others_vote_pct'])

请帮帮我..

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-06 05:59:42

您可以尝试如下所示:

代码语言:javascript
运行
复制
_df2 = df1.pivot_table(values='Vote_Pct', index='Fips_code', columns='Partisan')

然后:

代码语言:javascript
运行
复制
result = df2.merge(_df2, on='Fips_code', how='left')

这会给你你想要的:

代码语言:javascript
运行
复制
   Fips_code  democrat  others  republican
0       1001      0.23    0.07        0.70
1       1003      0.33    0.23        0.44
2       1005       NaN     NaN         NaN

如果希望这些列具有不同的名称,只需为其指定一个.rename()

代码语言:javascript
运行
复制
new_cols = {'democrat': 'democrat_pct_votes',
            'others': 'others_pct_votes',
            'republican': 'republican_pct_votes'}
df2.rename(new_cols, axis=1, inplace=True)
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64216539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档