Python 当索引不是自动递增时,如何获取行数。
df= 它给了我Python 当索引不是自动递增时,如何获取行数。,python,pandas,Python,Pandas,df= 它给了我45 我想要2 请建议 过滤后使用索引: df[df.item == 'alcohol'].index Index(['row 2'], dtype='object') 如果希望输出为2,则: indices = df[df.item == 'alcohol'].index indices.str[-1:] Index(['2'], dtype='object') 如果需要列表: indices.str[-1:].tolist() ['2'] 如果行号超过1位,则使用:
45
我想要2
请建议 过滤后使用索引:
df[df.item == 'alcohol'].index
Index(['row 2'], dtype='object')
如果希望输出为2
,则:
indices = df[df.item == 'alcohol'].index
indices.str[-1:]
Index(['2'], dtype='object')
如果需要列表:
indices.str[-1:].tolist()
['2']
如果行号超过1位,则使用:
indices.extract(r'(\d+)',expand=False)
初始设置:
df = pd.DataFrame({"index":[23,45,89],"item":['food','alcohol','drinks']},
index=['row 1','row 2','row 3'])
df
index item
row 1 23 food
row 2 45 alcohol
row 3 89 drinks
如果可能,通过以下方式创建默认索引值: 使用任何索引值的解决方案:
out = next(iter(np.where(df.item == 'alcohol')[0]), 'not matched')
样本:
df = pd.DataFrame({'item': ['food','alcohol','drinks']}, index=[23,45,89])
print (df)
item
23 food
45 alcohol
89 drinks
#test your output
print (df.index[df.item == 'alcohol'][0])
45
#python counts from 0, so for second value get 1
out = next(iter(np.where(df.item == 'alcohol')[0]), 'not matched')
print (out)
1
#condition not matched, so returned empty DataFrame
out = next(iter(np.where(df.item == 'a')[0]), 'not matched')
print (out)
not matched
它给你:
Index(['row 2'], dtype='object')
如果您想要“iloc”位置:
value_to_find = df.loc[df['item']== 'alcohol'].index.tolist()[0]
row_indexes = df.index.tolist()
position = row_indexes.index(value)
print(position)
注意:索引从0开始,您正在查找1,对吗?如果你想数行的话
position = row_indexes.index(value) + 1
使用
i、 e
Index(['row 2'], dtype='object')
value_to_find = df.loc[df['item']== 'alcohol'].index.tolist()[0]
row_indexes = df.index.tolist()
position = row_indexes.index(value)
print(position)
position = row_indexes.index(value) + 1
import pandas as pd
df = pd.DataFrame(columns = ['x'])
df.loc[10] = None
df.loc[20] = None
df.loc[30] = 1
print(df.index.get_loc(30))
>> 2