在DataFrame中进行条件筛选或者去重后index将变得不连续,那么如何重设连续的index?转载请注明:【转】http://blog.csdn.net/htbeker/article/details/79417959
df = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01.csv')
Net Upper Lower Mid Zsore
Answer option
More than once a day 0% 0.22% -0.12&5
Once a day 0% 0.32% -0.1945
Several times a we
1. 背景概述
日常的数据分析
中
,经常遇到需要根据各种不同的
条件
从数据集
中
筛选
相应的数据记录,再进行提取、分析、替换、修改等操作。因此,
筛选
是数据分析
中
使用频率很高的功能。一般而言,通常是使用for循环在数据
中
进行
筛选
,本文总结了在
python
中
常用的并且使用效率比较高的几种数据
筛选
函数如:isin(), query(), contrains(),以及它们的实践示例。
2.
筛选
方法和函数简介
简单的
筛选
方法:
单一的
筛选
条件
或值
df.loc[df[“column_name”] == value]
今天在处理一个数据的过程
中
出现问题,
python
中
的
dataframe
剔除部分数据后,索引消失,遍历就出错,
报错形式如下
Traceback (most recent call last):
File "D:/pycreate/tianchi_糖尿病/data_pre/split_data.py", line 53, in <module>
handler_data()..
pandas
DataFrame
中
按
条件
筛选
或
去重
后,需要
重新
定义
index
,否则会出现
index
错误
看了那么多博客,真的没几个能写到点上的,查了半天,试了半天,结果就一句话搞定。
test_df = test_df.reset_
index
(drop=True)
到这里有基础的大部分就知道怎么解决的,节约大家时间。
不懂的,我写一个完整的。
# 主要是想通过字符串长度对df进行
筛选
,但是没有想到什么好的方法可以直接
筛选
,于是就用了个笨方法,加入了一个长度列
test_df = pd.read_csv(
用法:
DataFrame
.drop(labels=None,axis=0,
index
=None, columns=None, inplace=False)
在这里默认:axis=0,指删除
index
,因此删除columns时要指定axis=1;
inplace=False,默认该删除操作不改变原数据,而是返回一个执行删除操作后的新
dataframe
;
inplace=True,则会直接在原数据上进行删除操作,删除后就回不来了。
>>>df = pd.
DataFrame
(np.arange(12).reshape(3,4), columns=['A', 'B', 'C', 'D'])
我们说excel好用,在处理大型数据表格的时候,excel可以非常方便地进行
筛选
。那么
pandas
是否有类似的功能呢?答案是肯定的。下面介绍的几个操作,返回的类型都是
dataframe
,因此可以进行嵌套操作,非常方便。
一、选取几列组成新的
dataframe
:
df = df[['A列列明', 'S列列明', 'H列列明']]
二、选取某列'STATUS'里面元素为"ACTIVE"的行,即
您好,关于
pandas
dataframe
的多
条件
筛选
,可以使用 loc 函数进行
筛选
。例如,假设有一个名为 df 的
dataframe
,需要
筛选
出列 A 大于 10,列 B 等于 'foo',列 C 不等于 'bar' 的行,可以使用以下代码:
df.loc[(df['A'] > 10) & (df['B'] == 'foo') & (df['C'] != 'bar')]
希望能对您有所帮助。