如何从pandas DataFrame手动选取指定行存入另一DataFrame
pandas 手动选取指定行生成新DataFrame的实现方法
手动从原DataFrame A挑若干行存入新DataFrame B,核心是按行的位置/索引做筛选,根据你已知的信息选对应写法即可:
- 按行的位置选(默认从0开始计数,即第1行对应位置0):用
iloc传入要选的行位置列表
比如你要选原表的第1行、第3行、第6行,直接写:# 方括号里填所有你要选的行的位置序号 B = A.iloc[[0, 2, 5]].copy()末尾加
.copy()是为了切断新老DataFrame的内存关联,避免后续修改B的时候误改动A的数据,避免触发SettingWithCopyWarning警告,是官方推荐的写法。 - 按自定义的行索引标签选(如果你给A设置过非默认的行索引,比如订单号、用户ID这类):用
loc传入要选的索引值列表
比如你要选索引值为'order_123'、'order_456'、'order_789'的三行:B = A.loc[['order_123', 'order_456', 'order_789']].copy() - 逐行肉眼判断筛选的场景:可以先生成一个和A行数等长的布尔列表,要选的行对应位置填
True,不选的填False,直接传入筛选
比如A一共有6行,你要选第1、4、5行,对应列表如下:select_flag = [True, False, False, True, True, False] B = A[select_flag].copy()
补充:如果选完之后希望B的行索引是从0开始连续的序号,可以在代码末尾追加.reset_index(drop=True),示例:
B = A.iloc[[0,2,5]].copy().reset_index(drop=True)
内容的提问来源于stack exchange,提问作者harshith
相关产品推荐
相关产品推荐

