DataFrame的各种实用操作

目录

1.列表转dataframe

2.删除的两种操作,删除NaN的列或行

3.Insert操作

4.Dataframe数据排序问题

5.去重:去除重复数据(keep有first、last、False值可选)

6.函数操作:apply

7.loc与iloc



摘要:强大的pandas库,函数功能繁多,其中的Dataframe更是有百般神通,基本能满足数据处理的绝大部分要求,值得一学。总结一下的Dataframe的插入、删除重复数据等功能 。

基础创建dataframe

import pandas as pd 
df = pd.DataFrame([
                    [1, 2,'河南','郑州','豫'],
                    [4, 5,'河北','石家庄','冀'], 
                    [7, 8,'黑龙江省','哈尔滨','黑'],
                    [9, 10,'甘肃省','兰州','甘/陇'],
                    [11,12,'云南省','云/滇','昆明']
                  ],
                  columns =['col1', 'col2','省份','省会','简称'],
                  index =['A','B','C','D','E']
                 )

1.列表转dataframe

①.不同的列表a=[1,2,3,4 ], b = [5,6,7,8]转dataframe

import pandas as pd

a=[1,2,3,4] #列表a
b=[5,6,7,8] #列表b

# 转换成dict, key:list
c = {"a": a, "b":b}

data = pd.DataFrame(c)
print(data)

运行结果:

   a  b
0  1  5
1  2  6
2  3  7
3  4  8

②.内嵌数组 a = [[1,2,3,4], [5,6,7,8]], 转dataframe, 并修改列名

from pandas import DataFrame
 
a=[[1,2,3,4],[5,6,7,8]]#包含两个不同的子列表[1,2,3,4]和[5,6,7,8]
 
data=DataFrame(a) #这时候是以行为标准写入的
print(data)

# 修改列名
data.columns = ['a', 'b', 'c', 'd'] 
# data.columns = ['a':0, 'b':1, 'c':2, 'd':3] 
print(data)

运行结果:

# data
   0  1  2  3
0  1  2  3  4
1  5  6  7  8
#修改列名后
   a  b  c  d
0  1  2  3  4
1  5  6  7  8

2.删除的两种操作,删除NaN的列或行

删除第c行:

# 设置参数axis=0. 参数axis为0表示在0轴(列)上搜索名字为c的对象
data.drop('c',axis=0)

删除cols = a, b列:

# 用drop函数设置参数axis=1. 参数axis为1表示在1轴(行)上搜索名字为col2的对象,然后删除
data.drop('a',axis=1)
#或者
data.drop(['a','b'],axis=1)

删除NaN的列或行 

# axis=0,表示行 axis=1,表示列
df.dropna(axis=0,how='all') # 删除表中全部为NaN的行

df.dropna(axis=0,how='any') #删除表中含有任何NaN的行

df.dropna(subset=['name', 'born']) # 删除表中'a','b'列中含NaN的行
df.dropna(thresh=2)  # 删除每行至少含2个以上的NaN的行

3.Insert操作

data.insert(0, 'new_col', [6,6])

输出

   new_col a  b  c  d
0     6    1  2  3  4
1     6    5  6  7  8

4.Dataframe数据排序问题

# 按cols=a的列的值升序排列
data.sort_index(by = 'a',axis = 0,ascending = True) #按多列排序 by=['a','b','c']

Out[65]: 
   a  b  c  d
0  1  2  3  4
1  5  6  7  8

5.去重:去除重复数据(keep有first、last、False值可选)

# 去除重复行数据 keep:'first':保留重复行的第一行,'last':保留重复行的最后一行,False:删除所有重复行
df = df.drop_duplicates(
  subset=['a','b','c'], # 去重列,按这些列进行去重
  keep='first' )# 保存第一条重复数据

6.函数操作:apply

# apply在series或者list上的应用:
data['a'].apply(lambda x:x-10)

out:
   a  b  c  d
0  -9  2  3  4
1  -5  6  7  8

7.loc与iloc

简单总结一下:

iloc,即index locateindex索引进行定位,所以参数是整型,如:df.iloc[10:20, 3:5]
loc,则可以使用column名(列名)index名(序列名)进行定位,如:
df.loc[‘image1’:‘image10’, ‘age’:‘score’]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值