我有一个hdf文件,打印出来像这样:
print dt['data1']
=>
column1 column2 column3
row1 3 8 2
row2 4 3 0
row3 12 1 14
row4 -5 5 25
1)我如何按行搜索或“选择”它?也就是说,
dt.get_row('row3')
=> row3 12 1 14
2)我如何按行和列值搜索?那是
dt.get_row('row2').where(column_value=3)
=> column2
答案 0 :(得分:1)
将您的pandas DataFrame
设置为df
:
df = dt['data1']
您可以使用ix
获取行:
df.ix['row3']
这会将结果显示为Series
:
column1 12
column2 1
column3 14
Name: row3, dtype: int64
您还可以将数值作为NumPy数组访问:
>>> df.ix['row3'].values
array([12, 1, 14])
或行的名称:
>>> df.ix['row3'].name
'row3'
以及row2
中的列,其值等于3
,其中包含:
r2 = df.ix['row2']
r2[r2.eq(3)].index
这会为您提供Index
个对象:
Index(['column2'], dtype='object')
您也可以访问单个元素:
>>> r2[r2.eq(3)].index[0]
'column2'
答案 1 :(得分:0)
以下是我可以使用的代码段。不确定这是否是最好的方法。
>>> import pandas as pd
>>> df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
>>> df
AAA BBB CCC<br>
0 4 10 100<br>
1 5 20 50<br>
2 6 30 -30<br>
3 7 40 -50<br>
>>> df.iloc[0]
AAA 4
BBB 10
CCC 100
Name: 0, dtype: int64
>>> df.iloc[0].AAA
4
希望这就是你要找的东西。