栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas笔记

import numpy as np
import pandas as pd
s = pd.Series([1,3,6,np.nan,44,1]) #series
dates = pd.date_range('20160101',periods=6) #从20160101开始的6天
df = pd.Dataframe(np.random.randn(6,4), index=dates, columns=['a','b','c','d']) #index为行索引,columns为栏
index = df.index #返回索引(行号)
columns = df.columns #返回栏(列号)
values = df.values #所有的数返回一个array
describe = df.describe() #各种统计参数
T = df.T
sort_index = df.sort_index(axis=0, ascending=False) #排序索引,axis=0为对index,ascending上升的
sort_value = df.sort_values(by='a') #对value的a列进行排序
df.reset_index(drop=True, inplace=True) #对索引进行重排
df['a'] #只要a列
df[0:3] #对行进行切片
df['20160101':'20160104'] #同对行进行切片
df.loc['20160102'] #定位行
df.loc[:,['a','b']] #定位列
df.iloc[3:5, 1:3]#根据位置切片
df[df.a>0.5] #筛选行的数值
df.b[df.a>0] = 0 #a列大于4的数 b列置零

#值的设置
dates = pd.date_range('20130101', periods=6)
df = pd.Dataframe(np.arange(24).reshape((6,4)), index=dates, columns=['A','B','C','D'])
df.iloc[2,2] = 1111 #修改元素
df['F'] = np.nan
df['E'] = pd.Series([1,2,3,4,5,6],index = pd.date_range('20130101',periods=6))

#处理丢失数据
dates = pd.date_range('20130101',periods=6)
df = pd.Dataframe(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
dropna = df.dropna(axis=0,how='any')#axis=0为行 how={'any','all'}
np.any(df.isnull()) #任何一个isnull是true则返回true,即检验里面是否有nan
fillna = df.fillna(value=0) #填充nan

#导入导出
#data = pd.read_csv('path.csv') #读完之后直接生成dataframe
#data.to_pickle('student.pickle')

#pandas合并
df1 = pd.Dataframe(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.Dataframe(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.Dataframe(np.ones((3,4))*2, columns=['a','b','c','d'])
res = pd.concat([df1,df2,df3], axis=0, ignore_index=True) #0为y轴方向,1为x轴方向

df1 = pd.Dataframe(np.ones((3,4))*0, columns=['a','b','c','d'],index=[1,2,3])
df2 = pd.Dataframe(np.ones((3,4))*1, columns=['b','c','d','e'],index=[2,3,4])
res = pd.concat([df1,df2],join='inner',ignore_index=True) #join表示合并方式,取并集、交集outer、inner
res = df1.append(df2, ignore_index=True) #向下叠加

#merge的合并
left = pd.Dataframe({'key':['K0','K1','K2','K3'],
                     'A':['A0','A1','A2','A3'],
                     'B':['B0','B1','B2','B3']})
right = pd.Dataframe({'key':['K0','K1','K2','K3'],
                     'C':['C0','C1','C2','C3'],
                     'D':['D0','D1','D2','D3']})
res = pd.merge(left, right, on='key') #合并
left = pd.Dataframe({'key1':['K0','K0','K1','K2'],
                     'key2':['K0','K1','K0','K1'],
                     'A':['A0','A1','A2','A3'],
                     'B':['B0','B1','B2','B3']})
right = pd.Dataframe({'key1':['K0','K1','K1','K2'],
                      'key2':['K0','K0','K0','K0'],
                     'C':['C0','C1','C2','C3'],
                     'D':['D0','D1','D2','D3']})
res = pd.merge(left,right,on=['key1','key2'],how='right') #on是基于哪两列,合并 how = 'inner','outer','right','left'
print(res)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号