Pandas dataframe:sample() 函数重置索引?

Pandas dataframe : sample() function resets indexes?

请考虑一个 panda 数据框 final_df,正确索引了 142457 行:

0
1 
2
3
4
...
142452
142453
142454
142455
142456

我从这个创建/采样一个新的 df data_test_for_all_models

data_test_for_all_models = final_df.copy().sample(frac=0.1, random_state=786)

几个指标:

2235
118727
23291`

现在我从 final_df 中删除索引在 data_test_for_all_models 中的行:

final_df = = final_df.drop(data_test_for_all_models.index)

如果我检查 final_df 中存在的一些索引:

final_df.iloc[2235] 

returns错了一行

我认为这是重置索引的问题,但它是哪个函数:drop()、sample()?

谢谢。

您正在使用提供 integer-based 索引的 .iloc。您得到的是行号 2235,而不是索引为 2235.

的行

为此,您应该使用 .loc:

final_df.loc[2235]

你应该得到一个 KeyError