python pandas常用数据处理方法

pandas



1、header = 0 不同于 header = None
	header = 0 表示 第0行为列
	header = None 表示读取的时候 认为没有标题,全是数据
	可以用 skiprows = 1 跳过列名

2、pandas 获取指定的行列数据
	df.iloc[0:2,[0,3]]  #读取 第 [0,2)行的第[0,3)列

3、创建 df = DataFram(data,index = '',columns = '')
	dates = pd.date_range('20130101', periods=3)
	data = pd.DataFrame(data,index=dates,columns=['A','B','C'])

4、查看列标题,行标题,数据描述,转置
	df.columns
	df.index
	df.describe() #带括号 查看数据描述,包括均值,方差,分位点
	df.T 

5、排序
	df.sort_values(by='B') # 按照 列 B 进行排序 默认升序
	df.sort_index(axis=1,ascending=False)  # 根据索引 排序 axis = 1 表示 分别对每一行排序,axis= 0表示对每一列排序
	ascending = False 表示按照降序排序

6、行列选择
	df.loc[:,['A','B']] #选择所有行的 A,B列
	df[0:3] #选择[0,3)行
	df.iloc[3] #选择第三行数据
	df.iloc[3:5,0:2] # [3,5)行 [0,2)列数据
	df.iloc[3:5,0:2]  # 这里都是切片
	df.iloc[[1,2,4],[0,2]] #用列表进行跳跃选择 行列 注意这样的话 行选择需要是列表需要多加一层[]  [[1,2,3],[0:2]]是错误的
	df.iloc[1,1] = df.iat[1,1] #获取位置[1,1] 的元素(单个元素可以不写成列表形式)

7、数据选择、赋值
	(1)对某一列进行数据选择
		df[df.A > 0] # 判断 A列值是否大于0 返回boolean值
		df[df > 0] = -df # 把 df(可以看作矩阵) 中大于0的元素 取反
	(2) 把 D列赋值为 np.array()
		 df.loc[:,'D'] = np.array([5] * len(df))
    (3)根据条件对某一列值进行修改
        下面就是找出满足第14列条件的情况,修改第14列,当然这里可以修改别的列,只要条件满足,可以选择你想要修改的列
            df.loc[df[14] == "<=50K.",[14]] = "<=50K"
            df.loc[df[14] == ">50K.",[14]] = ">50K"

8、缺失值处理
	(1)去除包含缺失值的行(只要有缺失值就去掉)
		df1.dropna(how='any')		 
	(2)把缺失值改为5
		df1.fillna(value=5)
	(3)判断是否是缺失值
		 pd.isna(df1) # 返回 bool矩阵,注意 是 用 pd调用 df

9、数据统计
	(1)求均值
		 df.mean(axis = 1) # 对每一行求均值 默认为按照列求均值

10、groupby用法
		data = [
		    ['男',20,98],
		    ['男',24,88],
		    ['女',35,89],
		    ['女',27,90]
		]

		df = pd.DataFrame(data,columns=['gender','age','score'])
		print(df)
		print(df.groupby("gender").size())
		print(df.groupby("gender").mean())

		Output:
		
			  gender  age  score
		0      男   20     98
		1      男   24     88
		2      女   35     89
		3      女   27     90
		gender
		女    2
		男    2
		dtype: int64
		         age  score
		gender             
		女       31.0   89.5
		男       22.0   93.0







x = []
x.append([1,2,3])
x.append([4,5,7])
print(x)
df = pd.DataFrame({"x":x},index=range(len(x)))
print(type(df['x'].values)) # <class 'numpy.ndarray'>,其实内部每行仍然是list
print(np.asarray(df['x'].values))
# 把外层的ndarray变为list,df['x'].values就变成了 list[list,list],即lists
print(np.asarray(list(df['x'].values)))


'''
output:

[[1, 2, 3], [4, 5, 7]]
<class 'numpy.ndarray'>
[list([1, 2, 3]) list([4, 5, 7])]
[[1 2 3]
 [4 5 7]]
'''

 

 

参考:

http://pandas.pydata.org/pandas-docs/stable/10min.html 官方10分钟教程

https://blog.csdn.net/brucewong0516/article/details/79096633

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值