Python之pandas学习笔记(二) 取数和筛选,插入行列,赋值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36636519/article/details/86033230

如下图是pandas的Dataframe清洗数据步骤,包括数据行列选取,赋值,更改列名集重建索引的思维导图:
pandas学习笔记(二)

一、数据选取-普通行列总结:

df[col] # 根据列名,并以Series的形式返回列
df[[col1, col2]] # 以DataFrame形式返回多列
df.loc[‘index_one’] # 按索引选取数据

df.iloc[0] # 按位置选取数据
df.iloc[0,:] # 返回第一行v
df.iloc[0,0] # 返回第一列的第一个元素


import numpy as np
import pandas as pd
data = pd.read_csv("Y:\\DataSet\\Pandas\\311-service-requests.csv",low_memory=False)
# 1、以DataFrame形式返回多列
data[["Unique Key","Created Date","Closed Date"]]
	Unique Key	Created Date	Closed Date
0	26589651	10/31/2013 02:08:41 AM	NaN
1	26593698	10/31/2013 02:01:04 AM	NaN
2	26594139	10/31/2013 02:00:24 AM	10/31/2013 02:40:32 AM
3	26595721	10/31/2013 01:56:23 AM	10/31/2013 02:21:48 AM
4	26590930	10/31/2013 01:53:44 AM	NaN

# 2、 df.loc[[index1,index2]] # 按索引取数据(行数据)
data.loc[[1,2]]
    Unique Key	Created Date	Closed Date	Agency	Agency Name		
1	26593698	10/31/2013 02:01:04 AM	NaN	NYPD	New York City Police Department
2	26594139	10/31/2013 02:00:24 AM	10/31/2013 02:40:32 AM	NYPD	New York City Police Department

# data.iloc[[0,1]]  # 与 data.loc[[0,1]] 效果一样

# data.iloc[0,1]    # 返回第一列的第二个元素
'10/31/2013 02:08:41 AM'

loc loc取数表达式 iloc iloc取数表达式
单个,取index的值,与索引位置不同 data_test.loc[“A”] 选取数据的所在行数位置,只能取数字 data_test.iloc[0]
array,多个index值 data_test.loc[[“A”,“B”,“C”] array,选取多行索引位置值 data_test.iloc[[0,1,2]
加入一个切片 data_test.loc[“A”:“C”]/(注:这个包含ABC行) 加入一个切片 data_test.iloc[0:3] (注:不包含索引位置为3的行)
行,列标签;定位单值 data_test.loc[“A”,“name”] 行,列索引位置,定位单值 data_test.iloc[0,0]
行或列标签是切片 data_test.loc[“A”:“C”,“name”] 行货列标签是切片 data_test.iloc[0:3,0]
接受条件,进行选择 data_test.loc[data_test[“math”]>60] ------ -------
接受一个boolean的array,按顺序,是真则显示 data_test.loc[[True,False,False,True]] ------ -------

总结
1、 loc和iloc函数都是用来选择某行的,iloc与loc的不同是:iloc是按照行索引所在的位置来选取数据,参数只能是整数。而loc是按照索引名称来选取数据,参数类型依索引类型而定;

二、 数据选取-按条件筛选行列 总结

2.1 逻辑符号

符号 表示
&
|
^
df[df[col1] > 0.5] # 选择col1列的值大于0.5的行
df[df[col1] > 0.5 & df[col1] < 1] 选择col列值小于1 并且大于0.5的行
df[df.weight==5].reset_index() 选择名为weight的列值等于5的所有行,并且重置索引
car[car.appname.str.contains(“生活”)] 选择appname列中含有“生活”的行

三、重建索引和更改列名总结

3.1 重建索引
1、reset_index() 显示效果:会产生新的索引,但是旧的索引同时同时存在
reset_index(drop=True) # 产生新的索引,删除旧索引

2、 set_index()
设置指定某(些)列为索引

3.2 改列名:
方法1
a.columns = [‘a’,‘b’,‘c’]
方法2
a.rename(columns={‘A’:‘a’, ‘B’:‘b’, ‘C’:‘c’}, inplace = True)

猜你喜欢

转载自blog.csdn.net/qq_36636519/article/details/86033230
今日推荐