dataframe基础

1 df[i]   其中i是0,1,2,3,...  此时选中的是dataframe的第i列

2 dataframe查看每一列是否有缺失值

1 temp = data.isnull().any() #列中是否存在空值
2 print(type(temp))
3 print(temp)  #若为False,则无缺失值,为True,则有缺失值

3 dataframe 更换列名和添加列名
a.  更换所有的列名  如下将1,2,3的列名全部更换

事实上不需要这么复杂,直接即不需要程序的第一行,直接第二行也可以。前提是赋的列的个数与列数要相等。

参考:https://www.cnblogs.com/hhh5460/p/5816774.html  https://www.cnblogs.com/harvey888/p/6006178.html

1 df=df[[0,1,2,3,4,5,6,7,10]]
2 df.columns=['id','ggid','createtime','sccc','gghyid','sptype','spid','ggzhid','price']
3 print(ad_operation.columns) # 输出所有列名,注意加s

b. 更换特定列名 https://www.cnblogs.com/hhh5460/p/5816774.html 

c. 添加大量空列的方法,当用apply()函数处理dataframe的行时,有时会返回多个值,这时需要添加空列来容纳这些值。

方法: 先新建一个dataframe,只赋列名,再将两个表格融合即可

kkk = pd.DataFrame(columns=['a','s','lsadfk'])
rrr = pd.merge( left= a, right= kkk, on = ['a'], how= 'left')

4 dataframe获取定位特定元素

注意第一个必须是列名,否则报错

print(ad_operation['ggid'][5])
print(ad_operation[['ggid','bid']])  # 当要输出两列值时,要加[]

5 df是dataframe的数据,df.shape表示的dataframe的行列,df.shape[0]是行数,df.shape[1]是列数,df.shape[2]无效

6 dataframe定位行的方法  iloc()是按照index的序值. loc()是按照index的具体值

http://www.cnblogs.com/qingyuanjushi/p/6085307.html

7 dataframe按某一列的条件删除整行的方法

如下使用isin()函数,加上~时表示包含在isin()的删除,否则留下

isin()括号里面应该是个list

1 m = chengji[~chengji['mes_Score'].isin([0, -1, -2, -3])]
2 n = m[~m['mes_sub_name'].isin(['数学','英语','语文'])]

8 dataframe删除某一列的重复元素,默认只留下第一次出现的

 test_sample_quchong = test_sample.drop_duplicates(['ggid']) 利用 data.drop_duplicates()#data中一行元素全部相同时才去除 可检查dataframe是否有重复的行
 参考:   https://www.cnblogs.com/mahailuo/p/8317178.html
9 dataframe删除某一列或几列
huaxue.drop(['mes_sub_name','mes_sub_id'], axis=1, inplace=True) # inplace为True时,直接在原数据上修改

参考:https://blog.csdn.net/songyunli1111/article/details/79306639

10 sort_value()函数

参数: by要与axis对应,axis=0时by中为列名,axis=1时by为行名。

ascending控制升序降序,True为升序,False为降序。

1 ## 参数    
2 DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')  
3 #### 参数说明    
4 axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默认按照索引排序,即纵向排序,如果为1,则是横向排序    
5 by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名"6 ascending:布尔型,True则升序,可以是[True,False],即第一字段升序,第二个降序  
7 inplace:布尔型,是否用排序后的数据框替换现有的数据框  
8 kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心  
9 na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面  

参考: https://blog.csdn.net/wendaomudong_l2d4/article/details/80648633

11 DataFrame.info()

可以输出读入表格的一些具体信息。这对于加快数据预处理非常有帮助。

参考:https://blog.csdn.net/sinat_35512245/article/details/79685891

12 shape用法

df是一个dataframe,df.shape输出的是df的行列,df.shape[0]是行数,df.shape[1]是列数,没有df.shpae[2]。

13 value_counts()

用于统计dataframe某一列不同数据的出现次数,其只能统计某一列的,不能整体统计。与unique()函数功能类似,但前者返回的是一个无重复元素的series,并且有series的长度和类型。后者返回的是一个ndarray。

如下计算abc列不同值出现的次数。

print(alldata.abc.value_counts())
print(alldata['abc'].value_counts()) # 这种写法会报错

14 四分位数的求法

nums是list,如下会将list中的数排序后,输出四分位数和中位数.

import numpy as np
np.percentile(nums, (25, 50, 75), interpolation='midpoint')

 

 

 

 

 
 









转载于:https://www.cnblogs.com/xxswkl/p/10754416.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值