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的行。如果我经常这样做:
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项。我也试过:
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个条目。
发布于 2017-05-12 09:14:15
我想你可以用query过滤
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
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))https://stackoverflow.com/questions/43933492
复制相似问题