我有一个表格,其中的列名并没有真正组织起来,就像它们有不同年份的不同列号的数据一样。
所以我应该通过指定的列名访问每个数据。我正在使用此语法访问列。
df = df[["2018/12"]]
但是当我只想提取该列下的数字时,使用
df.iloc[0,0]
它抛出一个错误,如
single positional indexer is out-of-bounds
所以我正在使用
df.loc[0]
但它具有带有数字数据的列名。
如何仅提取每行的编号?
下面是CSV数据
Closing Date,2014/12,2015/12,2016/12,2017/12,2018/12,Trend
Net Sales,"31,634","49,924","62,051","68,137","72,590",
""
Net increase,"-17,909","-16,962","-34,714","-26,220","-29,721",
Net Received,-,-,-,-,-,
Net Paid,-328,"-6,038","-9,499","-9,375","-10,661",
在写这个愚蠢的问题时,我只是一个初学者,甚至不知道我想问什么。
OP 的问题归结为“将行作为列表获取”,因为他结束了他的帖子,询问如何获取每行的数字(尽管他说“数字”可能是错误的)。答案是他在他的例子中使用双方括号犯了一个错误,这导致了问题。
解决方法是使用df = df["2018/12"]
代替df= df[["2018/12"]]
至于我(写这篇文章时的我)提到的事情,我会一一回答:
假设桌子看起来像这样
Unnamed: 0 2018/12 country drives_right
0 US 809 United States True
1 AUS 731 Australia False
2 JAP 588 Japan False
3 IN 18 India False
4 RU 200 Russia True
5 MOR 70 Morocco True
6 EG 45 Egypt True
1>df = df[["2018/12"]] :它将输出一个数据框,其中只有“2018/12”列和左侧的索引列。
2>df.iloc[0,0] 现在,因为从 1> 我们有一个只有一列的新数据框(索引列提到索引值除外)这将输出该列的第一个元素。在上面的示例中,结果将是“809”,因为它是列的第一个元素。
3>
但是当我只想提取该列下的数字时,使用
df.iloc[0,0] -> 如果您想获取提取数字,则没有意义。它只会从您使用 df = df[["2018/12"]] 创建的子数据帧中输出一个元素 809。
它抛出一个错误,如
single positional indexer is out-of-bounds
也许你对结果感到困惑。(也许在这种情况下,“df”是你的 df 数据框子集分配之前的那个?(df=df[[“2018/12”]])因为 df = df[[“2018/12 "]] 将输出一个数据帧,因此它可以正常工作。
3 所以我正在使用
df.loc[0]
但它具有带有数字数据的列名。
: 是 df.loc[0] from df = df[["2018/12"]] 将返回列名和该列的第一个元素。
4.
如何仅提取每行的编号?
你的意思是每一行的“数字”对吗?
使用这个:print(df["2018/12"].values.tolist())
在查找列或行的不同名称,然后访问每一行和列方面,您应该考虑使用正则表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句