如何从已有DataFrame筛选行生成索引从1开始的连续新副本
要实现你需要的独立连续索引DataFrame,只需要在原有筛选逻辑的基础上补充独立副本生成、索引重置两步操作即可,修改后代码如下:
import pandas as pd TestData = pd.read_csv('Aptitude_Classification_data.csv') TeamC = ['Synonyms and Antonyms', 'Time and Work', 'Permutations and Combinations', 'LCM and HCF', 'Profit and Loss'] # 筛选符合条件的行并生成完全独立的副本,避免修改新表影响原数据 SelectedData = TestData[TestData['Sub-Category'].isin(TeamC)].copy() # 先清除原有断层索引,再将索引起始值调整为1 SelectedData.reset_index(drop=True, inplace=True) SelectedData.index += 1 # 验证输出 pd.unique(SelectedData['Sub-Category']) SelectedData.head()
说明
- 原有代码中用
pd.DataFrame()包裹筛选结果的写法不会生成真正的独立副本,后续如果修改SelectedData的值有可能触发SettingWithCopyWarning同时影响原表TestData,改用.copy()方法可以完全避免该问题。 reset_index(drop=True)会删除原来的旧索引,生成从0开始的连续新索引,后续将索引整体加1即可实现从1开始的连续无断层索引。
内容的提问来源于stack exchange,提问作者mahesh gokhale
相关产品推荐
相关产品推荐

