如何基于它们包含熊猫的值选择列

时间:2019-06-21 13:55:38

标签: pandas dataframe

我在大熊猫中工作,具有一定的数据集,该数据集每年描述某个国家的人口。数据集以一种奇怪的方式解释,其中年份不是列本身,而是年份是集合第一行中的值。该数据集描述了从1960年到现在的每年,但是我只需要1970、1980、1990等。为此,我创建了所有年份的列表,并尝试创建一个与旧数据集等效的新数据集,但仅具有包含所述列表中的值的列,因此我没有未使用的所有这些额外信息。在线上,我只能找到有关删除行或按列名进行选择的说明,因为这两种标准都不适用于这种情况,我想我应该在这里询问。 数据集是一个csv文件,我已经从一些世界人口站点下载了该文件。 here a link to a screenshot of the data

正如您所看到的,几年以科学计数法给出了几年,这也是我将它们添加到列表中的方式。

http://localhost:3001/api/List

这是我到目前为止尝试过的事情之一,我认为这是最有意义的,但是我对熊猫还是很陌生,所以对您的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用https://data.worldbank.org/indicator/sp.pop.totl处的数据,将其复制到pastebin中(第一次使用该服务,因此,由于某些原因而无法使用,因此表示歉意):

ifelse(nzchar(names(l4)), paste("Name", names(l4), sep="."), "Name")
#[1] "Name"     "Name.l2." "Name.l3" 

一般评论:

  

以一种奇怪的方式解释数据集,其中年份不是列本身,而是年份是集合第一行中的值。

这是不正确的。查看CSV文件,很明显,第5行(国家名称,国家/地区代码,指标名称,指标代码,1960、1961,... 确实是列名称。您已将数据读入大熊猫,使得这些值不是列年,但是在尝试对数据进行子集化之前,第一步应该是确保您已正确读入数据-在这种情况下,会为您提供每年命名的列标题。