一、根据列条件,获取行索引号并转成列表
在dataframe中根据一定的条件,得到符合要求的某些行元素所在的位置
import pandas as pd
df = pd.DataFrame({'BoolCol': [1, 2, 3, 3, 4],'attr': [22, 33, 22, 44, 66]}, index=[10,20,30,40,50])
print(df)
a = df[(df.BoolCol==3)&(df.attr==22)].index.tolist()
print(a)
输出
BoolCol attr
10 1 22
20 2 33
30 3 22
40 3 44
50 4 66
[30]
注意:
df[(df.BoolCol==3)&(df.attr==22)].index返回的是index对象列表,需转换为普通列表格式时用tolist()方法
YueDian.loc[ YueDian['时间'] == date ]['日耗(万吨)'].index.tolist()[0]
二、根据列条件,选取dataframe数据框中的数据
选取等于某些值的行记录 用
"== "
df.loc[df['column_name'] == some_value]
# 选取某列是否是某一类型的数值 用 isin
df.loc[df['column_name'].isin(some_values)]
# 多种条件的选取 用 &
df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)]
# 选取不等于某些值的行记录 用 !=
df.loc[df['column_name'] != some_value]
# isin返回一系列的数值,如果要选择不符合这个条件的数值使用~
df.loc[~df['column_name'].isin(some_values)]
网友评论