python导入自定义函数_Python pandas自定义函数的使用方法示例

Python pandas自定义函数的使用方法示例

发布时间:2019-12-06 22:22

来源:互联网

当前栏目:web技术类

本文实例讲述了Python pandas自定义函数的使用方法。分享给大家供大家参考,具体如下:

自定义函数的使用

import numpy as np

import pandas as pd

# todo 将自定义的函数作用到dataframe的行和列 或者Serise的行上

ser1 = pd.Series(np.random.randint(-10,10,5),index=list('abcde'))

df1 = pd.DataFrame(np.random.randint(-10,10,(4,5)),index=list('ACBD'),columns=list('abcde'))

# todo 定义一个函数,求其和,绝对值,最大值减最小值的差值,平方

def func(x):

# print(x)

print('--------------')

num= np.max(x)-np.min(x)

a = abs(x)

b= x**2

# return num

# return a

return b

print(ser1.apply(func))

def func1(x):

# print(x)

print('--------------')

# num= np.max(x)-np.min(x)

a = abs(x)

b= x**2

# return num

# return a

return b

print(df1.apply(func1,axis = 1))

# todo 使用匿名函数实现----求其和,绝对值,最大值减最小值的差值,

print(df1.apply(lambda x:x**2,axis=1))

print('------')

print(df1.apply(lambda x:np.max(x)-np.min(x),axis=1))

print('---------')

print(df1.apply(lambda x:abs(x),axis=1))

# applymap的使用

# todo 使用applymap 因为applymap作用在每个元素上,所以不需要指定axis

print(df1.applymap(lambda x:x**2))

print('---------')

print(df1.applymap(lambda x:abs(x)))

排序

import numpy as np

import pandas as pd

ser1 = pd.Series(np.random.randint(-10,10,10),index=list('acbdfeghji'))

df1 = pd.DataFrame(np.random.randint(-10,10,(4,5)),index=list('ADBC'),columns=list('abcde'))

print(ser1)

print(df1)

print('------------------')

# todo 按照索引排序 sort_index()

# print(ser1.sort_index())#默认升序

# print(ser1.sort_index(ascending=False))#指定ascending为降序

# print(df1.sort_index())#默认行升序

# print(df1.sort_index(ascending=False))#行降序

# print(df1.sort_index(axis=1))#列升序

# print(df1.sort_index(ascending=False,axis=1))#列降序

# todo 按照值排序

print(ser1.sort_values())#默认升序

print(ser1.sort_values(ascending=False))#指定ascending为降序

# dataframe 对象比较复杂,需要按照哪一列来进行排序

print(df1.sort_values(by='a'))#默认列升序

print(df1.sort_values(by='a',ascending=False))#列降序

print(df1.sort_values(by='A',axis=1))#行升序

print(df1.sort_values(by='A',ascending=False,axis=1))#行降序

数据重构

import numpy as np

import pandas as pd

ser1 = pd.Series(np.random.randint(-10,10,10),index=[list('aabbccddee'),[1,2,1,2,1,2,1,2,1,2]])

df1 = pd.DataFrame(np.random.randint(-10,10,(4,5)),index=list('aabb'),columns=list('abcde'))

print(ser1)

print(df1)

print('-----------------------')

# todo 外层索引取值

print(ser1['a'])#获取单个外层索引

print(ser1['a':'e'])#获取多个外层

# todo 内层索引取值

print(ser1[:,1])

# todo 指定外层,内层索引取值

print(ser1['a',1])

# todo 交换分层-----swaplevel()

print(ser1.swaplevel())

# todo 将Sterise转为dataframe对象外层索引作为行索引,内层索引作为列索引

print(ser1.unstack())

# todo 将dataframe转为Sterise对象行索引作为外层索引行索引,列索引作为内层索引列

print(df1.stack())

# todo dataframe 转字典

print(df1.to_dict())

# todo dataframe 转csv文件

print(df1.to_csv())

数据连接操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值