【发布时间】:2022-01-18 00:39:08
【问题描述】:
我有一个包含 5000 行不同国家和排放数据的 pandas 数据框,如下所示:
| country | year | emissions |
|---|---|---|
| peru | 2020 | 1000 |
| 2019 | 900 | |
| 2018 | 800 |
国家标签是一个索引。
例如。 df = emission.loc[['peru']]
会给我一个新的数据框,其中仅包含附加到秘鲁的排放数据。 我的目标是使用变量名而不是“peru”,并将特定国家/地区的排放数据存储到新的数据框中。
我搜索的是与以下代码相同的代码:
country = 'zanzibar'
df = emissions.loc[[{country}]]
据我所知,问题出在 iloc 函数不接受变量作为输入。有什么办法可以规避这个问题吗?
换句话说,我希望能够基于与我的emission.index()all 中的一个国家/地区匹配的变量创建一个包含国家特定排放数据的新数据框,而无需更改给定变量以外的任何内容。
一种方法可能是迭代或以某种方式创建一个函数? 提前感谢您的帮助。
【问题讨论】:
-
你可以使用这个:
country = 'zanzibar' df = emissions.loc[[country]] -
我认为您混淆了
loc和iloc。尝试使用df = emissions.loc[[country]],假设国家名称是原始数据框的索引,它应该可以工作。 -
emissions.loc[country]也可以使用 -
非常感谢各位的帮助。我发现我有一个拼写错误,从一开始就让我走错了方向,现在就像一个魅力。将这个项目称为今天的退出可能是明智的:)
标签: python pandas dataframe function loops