从Pandas DataFrame中,我想选择第一行的值介于某个范围(例如,0.5 - 1.1)之间的列
我可以选择行0大于或小于某个数字的列:
df = pd.DataFrame(example).T
Result = df[df.iloc[:, 0] > 0.5].T
如何在一个范围内(即大于0.5且小于1)执行此操作。
感谢。
答案 0 :(得分:1)
您可以使用between
:
print (df[df.iloc[:, 0].between(0.5, 1.1)])
具有&
(array and
)条件的另一种解决方案:
print (df[(df.iloc[:, 0] > 0.5) & (df.iloc[:, 0] < 1.1)])
样品:
df = pd.DataFrame({'a':[1.1,1.4,0.7,0,0.5]})
print (df)
a
0 1.1
1 1.4
2 0.7
3 0.0
4 0.5
#inclusive True is by default
print (df[df.iloc[:, 0].between(0.5, 1.1)])
a
0 1.1
2 0.7
4 0.5
#added inclusive False
print (df[df.iloc[:, 0].between(0.5, 1.1, inclusive=False)])
a
2 0.7
print (df[(df.iloc[:, 0] > 0.5) & (df.iloc[:, 0] < 1.1)])
a
2 0.7
但如果需要按第一行选择列添加loc
:
df = pd.DataFrame({'A':[1.1,2,3],
'B':[.4,5,6],
'C':[.7,8,9],
'D':[1.0,3,5],
'E':[.5,3,6],
'F':[.7,4,3]})
print (df)
A B C D E F
0 1.1 0.4 0.7 1.0 0.5 0.7
1 2.0 5.0 8.0 3.0 3.0 4.0
2 3.0 6.0 9.0 5.0 6.0 3.0
print (df.loc[:, df.iloc[0, :].between(0.5, 1.1)])
A C D E F
0 1.1 0.7 1.0 0.5 0.7
1 2.0 8.0 3.0 3.0 4.0
2 3.0 9.0 5.0 6.0 3.0
print (df.loc[:, df.iloc[0, :].between(0.5, 1.1, inclusive=False)])
C D F
0 0.7 1.0 0.7
1 8.0 3.0 4.0
2 9.0 5.0 3.0
print (df.loc[:, (df.iloc[0, :] > 0.5) & (df.iloc[0, :] < 1.1)])
C D F
0 0.7 1.0 0.7
1 8.0 3.0 4.0
2 9.0 5.0 3.0