关于pandas中增减查改一些函数的理解应用

1:增

  1.1 insert

   目前本人关于pandas的增的函数只有insert用的多点

Dataframe.insert(loc, column, value, allow_duplicates=False)

其中:

  • loc:int型,表示插入位置在第几列;若在第一列插入数据,则 loc=0

  • column:给插入的列取名,如 column='新的一列’

  • value:新列的值,数字、array、series等都可以

  • allow_duplicates:是否允许列名重复,选择Ture表示允许新的列名与已存在的列名重复

例如:

 在使用insert函数后:

 或者插入array:

 1.2  

 第二种方法就是直接加入一个列就行。

2 : 减

pandas—删除某行或某列数据_pandas 删除列_IT技术学习的博客-CSDN博客这个博客写的很清楚。

3:查

3.1    loc与iloc

可以看出,这两个长得还是挺像的,区别在于后面多了个i,这个i是index的缩写, loc是根据是根据行列名来提取数据,而iloc是根据索引来提取数据:

但是,如果用m.loc[2,1]就是错的:

正确的应该是:

3.2   isna和notna

这两个命令是用来处理缺失值的:

 3.2.1  isna

 

 利用isna命令,能够检查某一列是否有缺失值,也可以检查所有的列的缺失值情况,如果没有缺失值,则在单元格呈现Flase,有缺失就是True。也可以利用isna直接统计缺失了多少值:

或者也可以直接用info直接查看DataFrame的所有行列情况:

如果要查看某一列的缺失值在哪一行:

 3.2  notna

在使用notna统计缺失值的时候和isna刚好相反,True代表没有缺失,False代表缺失

同理,也可以统计所有列的缺失值总数:

 

 这时候呈现的是每列的所有值个数和。

如果想要把某一列没有缺失的行全部提取出来,可以:

4:改

4.1 map

import pandas as pd

t = pd.DataFrame(data=[[1, '不幸福'], [2, '幸福'], [8, '幸福'], [1, '不幸福']], columns=['a', 'b'])
print(t)
''' 
   a    b
0  1  不幸福
1  2   幸福
2  8   幸福
3  1  不幸福
'''
t['c'] = t['b'].map({'幸福':1, '不幸福':0})
print(t)
'''
   a    b  c
0  1  不幸福  0
1  2   幸福  1
2  8   幸福  1
3  1  不幸福  0
'''

用map的形式,能够把一列对应的数据赋值

4.2 fillna

fillna函数可以对缺失值进行填充

import pandas as pd

t = pd.DataFrame(data=[[1, '不幸福'], [None, '幸福'], [8, '幸福'], [None, '不幸福']], columns=['a', 'b'])
print(t)
'''
     a    b
0  1.0  不幸福
1  NaN   幸福
2  8.0   幸福
3  NaN  不幸福
'''

t['a'].fillna(0, inplace=True)
print(t)
'''
     a    b
0  1.0  不幸福
1  0.0   幸福
2  8.0   幸福
3  0.0  不幸福
'''

同时也可以对每一列所有不同的值进行统计:

import pandas as pd

t = pd.DataFrame(data=[[1, '不幸福'], [1, '幸福'], [8, '幸福'], [1, '不幸福']], columns=['a', 'b'])
a = t['b'].value_counts()
print(a)

'''
幸福     2
不幸福    2
Name: b, dtype: int64
'''

'''
t['b'].value_counts().index 该列含有的不同元素的种类

t['b'].value_counts().values 该列含有的不同元素的个数
'''

4.3  df.apply()

dataframe.apply(function,axis)对一行或一列做出一些操作(axis=1遍历行,axis=0遍历列)

import pandas as pd


def func(x):
    if x == '幸福':
        return 8
    else:
        return 9


t = pd.DataFrame(data=[[1, '不幸福'], [1, '幸福'], [8, '幸福'], [1, '不幸福']], columns=['a', 'b'])
print(t)
'''
   a    b
0  1  不幸福
1  1   幸福
2  8   幸福
3  1  不幸福
'''

t['b'] = t['b'].apply(func)
print(t)
'''
   a  b
0  1  9
1  1  8
2  8  8
3  1  9
'''

**  未完待续,以后再来更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值