Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas:按行和列编号从dataframe访问数据_Python_Pandas_Dataframe - Fatal编程技术网

Python Pandas:按行和列编号从dataframe访问数据

Python Pandas:按行和列编号从dataframe访问数据,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个简单的程序让我困惑。我从一个csv文件中读取了一个3*10的数据,我想通过它的行和列号来访问一个特定的数据。但是失败了,我不知道为什么 matrix.txt: 1,2,3,4,5,6,7,8,9,10 11,12,13,14,15,16,17,18,19,20 21,22,23,24,25,26,27,28,29,30 节目: datainput = pd.read_csv('matrix.txt',sep=',', header = None) inputinfo = datain

我有一个简单的程序让我困惑。我从一个csv文件中读取了一个3*10的数据,我想通过它的行和列号来访问一个特定的数据。但是失败了,我不知道为什么

matrix.txt:

1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30
节目:

datainput = pd.read_csv('matrix.txt',sep=',', header = None)

inputinfo = datainput.shape ==> 3, 10

print datainput[3][3] => failed,but it should return 23, 

如果列号等于或大于3,我无法访问任何数据。索引从0开始:

In [8]:

df
Out[8]:
    0   1   2   3   4   5   6   7   8   9
0   1   2   3   4   5   6   7   8   9  10
1  11  12  13  14  15  16  17  18  19  20
2  21  22  23  24  25  26  27  28  29  30

In [11]:

df[2][2]
Out[11]:
23
由于您没有提供标题,因此标题是自动生成的,也是针对索引的,默认行为是从
0
开始生成索引,如您在上面所看到的

此外,您最后的陈述不正确:

In [13]:

df[3][2], df[5][2]
Out[13]:
(24, 26)
这里,第一个下标值是列标签,后跟行标签

以下情况确实会引发按键错误:

df[3][3]

谢谢你的回复,但我仍然无法访问df[2][5],应该是25。你读过我的答案了吗?我已经说过,第一个下标是列,下一个是行,所以25应该是
df[5][2]
而不是
df[2][5]
谢谢。奇怪的是,第一个下标是column,这违反了大多数其他语言的习惯。有什么特别的原因吗?我不知道我想这可能是numpy也使用的一些约定,但是numpy使用行、列作为顺序,我怀疑它遵循相同的语义,如果您的df列有诸如“col1”、“col2”等名称。。然后执行
df['col1'][2]
会选择col1第3行,我刚刚测试了如果执行
df[2]['col1']
会发生什么,这会引发一个关键错误,因此看起来这是熊猫开发人员有意识的设计决策