首页 > 其他分享 >大数据基本公式——二:pandas

大数据基本公式——二:pandas

时间:2024-10-21 16:22:44浏览次数:7  
标签:基本 index loc df 公式 pd series data pandas

df = df.rename(columns={'村居书记(主任/负责人)': '村居书记_主任_负责人'})     修改名字

s.mean()        series取均值

s.max() s.min()

'b' in s.index()       判断是否存在

s=pd.series({'a':1,'b':9,'c':4}) 用dict构造series_key就是index

s.isnull()         是不是NaN

df.isnotnull

data.info()

data.describe()

np.unique(data)     返回该data的唯一值 

df.xxx.value_counts()

df.race.isin(['汉族'])

df.apply()

df.applymap()      对每一个元素应用函数

data.tail() 

 

 

df.lok[‘one’] 用索引取

df['one':'three']                 用index进行切片时,最后一个值是包函的,和python的数组不一样

df.loc['one':'three',['a','b']]      取前三行,再取里面的前两列。   df.loc['one':'three',['a']]   后面也可以用切片  df.loc['one':'three',['a':'c']]  

df.loc[['one':'four'],['a','b']]      同上,如果只取两列,就要放在一个[]中,   

df.loc["three","b"]              前面是对行,后面是对列        重点:选范围就不放[] 用:来切,只先哪几行就要用[]括起来。     切片不括,

df.ilok[1:,0].    按行位置      不抱括最后一位                 也是先行后列,前面是表示行.  一句话loc索引,iloc位置 添加行,用loc(append)

df['d']=4.              赋值-添加列

df['d']=4       添加列              df.h=5这样不行,必须中【】

df['d']=np.arrange(4 )

df['d']=pd.Series([2,3,4,5])

del df['e']  删除列           删除列的话会对原DF直接生效

df.loc['five']=10 添加行

df.drop('one')        删除行  用index当参数 df不变,返回个新的

df.drop(['four','five'])     两行就用list 

df.sum()             个数

data.isna()和isnull()       是否为NaN值

data.dropna()        series和df中都可以用好像,抛去NaN值__在df中只要有一个缺失值就会删

data.dropna(how='all')            全缺失就会

data.fillna({'aa':,np.nan,'bb':np.nan})

data[np.abs(data>3).any(1)] ___1代表行,axis=1_________太重要了,找出每一行数里有大于3的人

.any()就是这一行只要有一个为True时,就返回,有利于排查大的DF  any(1)应该是轴

.all()只有全部为true时才能返回

 

离散化分析,以分析段为主

pd.cut(data,bins=bins,right=false)

pd.cut(data,4)直接输入4就是分成4份

 

data.isnull().any()    把有null值的人找出来

data.dropna(subset=['location','type']).   抛有空的指定行

 

data.name.str.replace('beijing','shanghai')

————————drop也可以删除列   df.drop(coumns=['c','f']) ____默认是index

 

 下面我看还是看下面吧,省事,内容也不多

 

pandas以索引为准  series就是列  Dataframe就是表格 列索引是columns

26课   ————————

 

 s.index

s.value

s=pd.series([1,3,6,2],index=['a','b','c','d'])

'b' in s.index判断B这个INESX是否在index中

s=pd.series({'a':1,'b':9,'c':4})用字典方式构造series

27课

有index,肯定就是定义的index,但是值对不上的话就是NAN

s.isnull()

 取反就是~s.isnull()或者isnotnull()_______isnotnull()在series上不能用,只能在dataframe上用 

pandas的节片是前后都包括

列索引是columns

 用字典创建DataFrame

data=DataFrame({'a':[1,2,3,4],'b':list('abcd'),'c':9,'d':pd.Series([5,6,7,8])})

我理解健就是列,

data.columns列索引 data.index行索引

xuhao=['one','two','three','four']

df=pd.DataFrame(np.random.randn(4,3),index=xuhao,columns=['a','b','c'])

 

取单列用df['a']或df.b

取多列用df[['a','b']]______用list 又中括号返回多列

取一列返回series取多例返回DF

df.head()

df.tail()

df.values()

28课

loc['one']这样取一行就是一个series,将一行变成了竖着的series 列,将原来column表变成iindex

loc[['one','two']]双中括号取多行就恢复原来的了,取得还是DF

loc['one':'three']切片方式取——————节片不用双【】

loc['one':'three',['a','b']]________分成两部分,前面是行,后面是列

loc['one':'three','a':'c']________分成两部分,前面是行,后面是列,同上,后面也可以切片

总之:切片的时候,不需要将索引放在【】,要精准取就要放到【】

loc前面是行,后面是列

loc[:'three','b':]道理见上

df.iloc[1]按位置

df.iloc[1:]按位置

df.iloc[1:,0]

df.iloc[:2]______不包括这个2——————loc是按index取值 是包括最后一位的而ILOC就和python一样了

总之,一个按索引取值 ,一个按位置取值 

29课 增删改查

df['d']=4       添加列              df.h=5这样不行,必须中【】

df['d']=np.arrange(4 )

df['d']=pd.Series([2,3,4,5])

del df['e']  删除列         删除列的话会对原DF直接生效

df.loc['five']=10 添加行

df.drop('one')删除行  df不变,返回个新的

df.drop(['four','five'])两行就用list 

————————drop也可以删除列   df.drop(coumns=['c','f']) ____默认是index

 

30课

 data.sort_index(axis=1,ascending=false)根据索引进行排序_____产生新数据,原数据不变

  data.sort_index(axis=1,ascending=false,inplace=true)这就不一样了,立刻生效

data.seort_values(by='c') ascending=false就是降序的意思

data.reindex()   columns=['b','c','d','a']_____如果没有的值 ,会让那一列成为NaN值 ————对于series也可以用reindex

同时按照行和列进行对齐

np.mean(data)___如果对DF进行运算的话,默认是在行上进行计算   data.mean   data.sun(1)或 data.sun(0)——————对象方法

31课

 data.head()  data.tail()

data.info()  每一列的情况

data.describe()常见汇总统计结果

data.idxmax(0)每行最大值索引

np.unique(data)返回该data的唯一值 

data.iloc[:,-1]取所有的行,取最后一列________后面用.unique() 方法取唯一

data.iloc[:,6].value_counts()

32课

成员关系判断

s.isin(['a','c']) ______一个大表里取出985的同学   

data.apply()在data上应用一个函数

data.apply(lamda x:x.max()-x.min(),axis=0) 指定在行上应用,还是在列上应用

data.applymap()对每一个元素运行这个函数      apply这种方法不是向量化的运算,所以速度会慢一些

33课

header=None 有表头就不加,没表头就加

data=pd.read_csv('./xxxx/xxx.txt',sep=''\t)————————分割

data.columns=["age","name","height","wight"]——————给没有column的加columns

data=pd.read_csv('./xxxx/xxx.txt',sep=''\t,sep='\t',header=None,names=["age","name","height","wight"])   直接添加列名

在read_csv()方法中,index_col比较有用,是指定某一列指定为index

34课,

保存的时候用index=False就不会加一列了

date.to_excel('./xxxx')保存为excel

pd.read_excel('./xxxx',sheetname=1)

pd.to_json('./xxxx')保存为json

data.type____用对象方式选一列

xxx.valut_count()返回一个series,——————然后.index就得到前10种机型

37课横向合并  

合并dataframe     pd.merge横向合并  

data=pd.merge(data1,data2,on='one') 横向合并,增加列 里面的one针对ONE这一列进行合并。——————针对one这一列进行交集合并 

案例中的意思是如果有两个表,一个是姓名年纪,一个是姓名身高,这种方式合并。这样相当于多加列。只保留共有的元素

data=pd.merge(data1,data2,how='outer') 并集————   inner是交集(默认)  left以左边为准同样right就是右边为准

data=pd.merge(data1,data2,left_on='one1',right_on='one2') 如果两个表的列都不一样,就要指定左边根据哪一列,右边根据哪一列

data=pd.merge(data1,data2,left_index='True',right_index='True',how='outer') 两边都要有true

data1.join(data2)快速合并,这种合并要求较高,用index合并,要求没有重叠的列

用谁来join就以谁为准,data2 如果没有就填充为

38 纵向合并

pd.assign(three=np.arange(6))    用来单独增加一列

纵向合并 concat([])  里面是个列表  pd.concat()默认是纵向合并,但参数调整后也可以横向合并

ignore_index=True 用了这个,就会用新的index相当于新数据了我想

39课 重复值 

data.duplicated()找到重复的布尔值 

(data.duplicated()).sun()   有几行是重复的呢

data.drop_duplicated()    ___data.drop_duplicated('k1')根据K1进行去重

data['k3']=1 给dataframe增加一列

data.drop_duplicated(['k1','k3'])  根据K1和K3去重————重要,根据几行的值决定去重

data.ki.replace('two','three') _____相当于在series上运行了replace方法
data.replace(1,100)把1替换成100,应该是在DF上所有的1

inplace=True一般在修改df的时候会返回一个新DF,但如果加了inplace=True就会让原来的DF立刻生效

40课

sum()运算

isnull() 和notnull()

data.dropna()抛去所有NaN的值  比较极端

data.dropna(how='all')所以用这个,只有全为NAN时才删除,这是另一种极端

如果删除全是NAN的列就用

data.dropna(axis=1,how='all')  列为1,行为0

data.isna()

填充缺失值 

data.fillna(0)

data.fillna({'aa':1,'bb':2}])选择列来填充NAN

data.fillna(data.mean())————————有一些数不能被抛弃的太厉害,所以用一些均值

day41 字符串方法

data.k1.str.replace('beijing','shanghai')

data.k1.str.s('')

strip()去空, split()分割   map方法 再看

42课,

.any()就是这一行只要有一个为True时,就返回,有利于排查大的DF  any(1)应该是轴

.all()只有全部为true时才能返回

np.sign()用得少

离散化分析————先定bins,这是划分标准,看看整 个数据的分段情况
data=pd.DataFrame(np.random.randint(1,100,(50,2)))

bins=[0,20,40,60,80,100]

cat=pd.cut(data.iloc[:,0],bins=bins,right=true)    right=true就是不包括右边的最大值 right=False就是左开右闭

下面是简写方式

cat=pd.cut(data.iloc[:,0],4)____简单分成4份___由最小的值到最大的值进行等分

cat=pd.qcut(data.iloc[:,0],4)

cat.value_counts()

43课

data.dropna(subset=['location','type']) 这两行任何一个有NaN就抛弃drop掉  

data.fillna(0)    .sum()的前面应该要用一个0

44课

 

取列用df['a']或df.b

取列用df['a']或df.b

 

标签:基本,index,loc,df,公式,pd,series,data,pandas
From: https://www.cnblogs.com/wenjingping/p/18312801

相关文章

  • Python之Matplotlib的基本使用教程
    1.安装pipinstallmatplotlib-ihttps://pypi.tuna.tsinghua.edu.cn/simple#在终端输入2.基本配置frommatplotlibimportpyplotasplt#让图片可以显示中文plt.rcParams['font.sans-serif']='SimHei'#让图片可以显示负号plt.rcParams['axes.unicode_minus'......
  • Prufer序列和Cayley公式
    首先定义无根树中度数为1的节点是叶子节点。找到编号最小的叶子并删除,序列中添加与之相连的节点编号,重复执行直到只剩下2个节点。这个序列为这棵树的Prufer序列。一棵有\(n\)个节点的无根树的Prufer序列的长度为n-2。显然,一棵无根树可以一一对应一个Prufer序列。而......
  • HTTP和HTTPS基本概念,主要区别,应用场景
    HTTP和HTTPS是用于在网络中传输数据的协议,虽然它们的功能类似,但在安全性上存在显著差异。1. HTTP的基本概念定义:HTTP是一种无状态的、面向请求-响应的协议,用于客户端(如浏览器)和服务器之间传输超文本数据(HTML、CSS、JavaScript等)。工作原理:客户端向服务器发送请求,服务器处......
  • 通达信“钻石顶底,多空涨跌即时提示公式!无限制
    通达信“钻石顶底,多空涨跌即时提示公式!无限制使用技巧“底部三月,顶部三天”是市场顶底形态的常用描述,强调顶部形成迅速而底部形成缓慢的市场规律。精通K线图解及股市顶部形态对于投资者准确判断市场转折点至关重要。顶部形态通常标志着由上升趋势向下降趋势的转变,常见的顶......
  • 07安装过程中的基本概念
    每天五分钟学Linux|第七课:安装过程中的基本概念大家好!欢迎再次加入我们的“每天五分钟学Linux”系列教程。在之前的课程中,我们介绍了如何使用LiveCD/USB来体验Linux。今天,我们将进一步深入,讲解在安装Linux过程中的一些基本概念,如分区和文件系统等。理解这些概念对于顺利......
  • 用人话讲计算机:小白版Python篇!(二)基本数据类型1和进制数
    一、数据类型上一节我们曾讲到a=1,b=2,c=“b”之类的东西,我们知道a,b,c叫做变量,而现在所谓的数据类型,其实就是1,2,“b”他们分别属于什么。而我们将数据们分为以下几个类型:1、整数整数,就是我们日常生活中的整数,如1,2,3,-1,-2,0,10,90之类。定义方式:a=12、浮点数浮点数,就是小数,如1......
  • 用人话讲计算机:小白版Python篇!(一)入门知识点和基本语法规范
    注:以下篇章都是用Pycharm写的,具体安装看我主页教程:2024最新:Python与PyCharm下载教程(含汉化!!!)一、什么是Python?标准版:Python是一种高级的、动态类型的编程语言,以其简洁的语法和丰富的库著称。‌Python由荷兰人吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品,它是一......
  • 集合基本概念
    集合1、集合与元素集合:由一个或多个确定的元素所构成的整体,是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。元素:构成集合的这些对象则称为该集合的元素。例如,全中国人的集合,它的元素就是每一个中国人。例如,{1,3,5}是一个集合,3是该集合的元素。2、空集有一类......
  • 马克思主义基本原理
    马克思主义基本原理考点17量变质变规律1.事物存在的质、量、度2.事物发展的量变和质变及其辩证关系3.量变质变规律原理的方法论意义考点18否定之否定规律1.事物发展过程中的肯定和否定2.辩证否定观的基本内容3.辩证否定观对人们的认识和实践活动具有重要的指导......
  • linux基本命令培训
    Linux基本命令切换目录:cd显示当前所在目录:pwd新建目录:mkdir新建文件:touch vi删除:rm  (rm-rfaa1.txt)查看档案和目录:ls   ll   ls-l复制:cp移动:mv查看文件:cat (cat1.txt,   cat1.txt2.txt>3.txt)一页一页的显示文件内容:more、less(more1.txt-àctrl+f......