首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫几行数据融合

熊猫几行数据融合
EN

Stack Overflow用户
提问于 2017-05-12 08:56:43
回答 1查看 2.4K关注 0票数 0
代码语言:javascript
复制
print(ScimEn.head(20))
    Rank             Country
0      1               China
1      2       United States
2      3               Japan
3      4      United Kingdom
4      5  Russian Federation
5      6              Canada
6      7             Germany
7      8               India
8      9              France
9     10         South Korea
10    11               Italy
11    12               Spain
12    13                Iran
13    14           Australia
14    15              Brazil
15    16              Taiwan
16    17              Turkey
17    18              Norway
18    19         Netherlands
19    20              Sweden

我想将这个DF合并到另一个行,但是只有排名0:15的行。如果我经常这样做:

代码语言:javascript
复制
dfs = [ScimEn, energy, GDP[year].reset_index()]
newdf = reduce(lambda left, right: pd.merge(left, right, on='Country'), dfs)
newdf = newdf.set_index('Country')
print(len(newdf))

我的DF值为140项,但我希望上面提到的每个条目的DF值为15项。我也试过:

代码语言:javascript
复制
 dfs = [ScimEn.where(ScimEn['Rank'] < 15), energy, GDP[year].reset_index()]
newdf = reduce(lambda left, right: pd.merge(left, right, on='Country'), dfs)
newdf = newdf.set_index('Country')
print(len(newdf))

但它只返回了4个条目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-12 09:14:15

我想你可以用query过滤

代码语言:javascript
复制
dfs = [ScimEn.query("Rank < 15"), energy, GDP[year].reset_index()]
newdf = reduce(lambda left, right: pd.merge(left, right, on='Country'), dfs)
newdf = newdf.set_index('Country')
print(len(newdf))

或者像提到的那样由boolean indexing执行,Phong Phung comment

代码语言:javascript
复制
dfs = [ScimEn[ScimEn['Rank'] < 15], energy, GDP[year].reset_index()]
newdf = reduce(lambda left, right: pd.merge(left, right, on='Country'), dfs)
newdf = newdf.set_index('Country')
print(len(newdf))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43933492

复制
相关文章

相似问题

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