dataframe常用操作

一、创建、取某列某行、删除某列

import pandas as pd
lst=[2,3,5] #表示df的一行
df=pd.DataFrame(data=[lst,lst],columns=[‘col1‘,‘col2‘,‘col3‘]) #从列表生成DF
df=pd.DataFrame(data={‘col1‘:[2]*2,‘col2‘:[3]*2,‘col3‘:[5]*2})#字典生成DF

df[[‘col1‘,‘col2‘]]#可以取出对第一、二列的数据df[2:][[‘col1‘,‘col2‘]] #可以取出第2行到最后一行的第1、2列的数据

df.drop(‘col1‘,axis=1)#删除第1列df.drop([‘col1‘,‘col2‘,axis=1])

二、对一列或者多列作运算

1. 利用map对一列作运算

df[‘col‘] = df[‘col1‘].map(lambda x: x**2)  #生成一列,是第1列的平方

2.利用apply对一列或多列作运算

df.index  = pd.date_range(‘20190101‘,periods=5) #将原来的index改成以日期为index
df[‘col‘] = df.apply(lambda x:x[‘col1‘]*x[‘col2‘], axis=1) #对‘col‘列改写成‘col1‘列的对应行乘以‘col2‘列的对应行

三、求滑动平均

df[‘MA‘] = df[‘col‘].rolling(window=3, center=False).mean() 

四、对列作向上或向下的平移变换

df = pd.DataFrame({‘id‘:[1,1,1,2,2,3],‘value‘:[1,2,3,4,5,6]})
df[‘value_shift‘] = df.groupby(‘id‘)[‘value‘].shift(1) #按id列分组,对value列进行平移变换,即都向下移动1行
df[‘value_shift_1‘] = df.groupby(‘id‘)[‘value‘].shift(-1) #按id列分组,对value列进行平移变换,即都向上移动1行

五、对列作标准化处理:

from sklearn import preprocessing
df = pd.DataFrame({‘id‘:[1,1,1,2,2,3],‘value1‘:[1,2,3,4,5,6],‘value2‘:[1,3,4,3,7,2]})
value=df[[‘value1‘,‘value2‘]]
value_T=value.transpose() #value_T是array类型
scaler=preprocessing.StandardScaler().fit(value_T) #scaler是对行数据作标准化,所以对df的列数据应该将其转置
value_T_scale = scaler.transform(value_T)
value_scale = value_T_scale.transpose()

#有时需要用到np.array的reshape:
y=df[[‘value‘]]    #y.shape=(6,1)
y=y.reshape(1,-1)  #y.shape=(1,6)
y=y.reshape(-1,1)  #y.shape=(6,1)y=np.repeat(0,len(y)) #生成零矩阵

六、对某列赋值

df = pd.DataFrame({‘id‘:[1,1,1,2,2,3],‘value‘:[1,2,3,4,5,6]})
value=[11,22,33]
df.loc[df.index[0:3],‘value‘]=value
df.loc[df.index[0:3], ‘value0‘]=value

七、 对list中多个重复的字符作频数统计

lst=[‘a‘,‘a‘,‘a‘,‘b‘,‘c‘,‘c‘,‘b‘,‘e‘,‘f‘,‘a‘,‘a‘,‘c‘]
cnt = pd.Series(lst).value_counts()

参考:

后续再补充。

原文地址:https://www.cnblogs.com/pandas-blue/p/11634984.html

时间: 2024-10-10 08:34:06

dataframe常用操作的相关文章

R 语言的Dataframe常用操作

上节我们简单介绍了Dataframe的定义,这节我们具体来看一下Dataframe的操作 首先,数据框的创建函数为 data.frame( ),参考R语言的帮助文档,我们来了解一下data.frame( )的具体用法: Usage data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, fix.empty.names = TRUE, stringsAsFactors = default.stringsAs

R语言dataframe的常用操作总结

前言:近段时间学习R语言用到最多的数据格式就是data.frame,现对data.frame常用操作进行总结,其中函数大部分来自dplyr包,该包由Hadley Wickham所作,主要用于数据的清洗和整理. 一.创建 data.frame创建较为容易,调用data.frame函数即可.本文创建一个关于学生成绩的数据框,接下来大部分操作都对该数据框进行,其中学生成绩随机产生 1 > library(dplyr) #导入dplyr包 2 > options(digits = 0) #保留整数 3

Python 字典的特点和常用操作

一.字典帮助文档 >>> dir(dict) ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt

postgresql的ALTER常用操作

postgresql版本:psql (9.3.4) 1.增加一列ALTER TABLE table_name ADD column_name datatype; 2.删除一列 ALTER TABLE table_name DROP column_name; 3.更改列的数据类型 ALTER TABLE table_name ALTER column_name TYPE datatype; 4.表的重命名 ALTER TABLE table_name RENAME TO new_name; 5.更

Mysql数据库常用操作

1.备份数据库 [[email protected] ~]# mysqldump -h 192.168.0.8 -uroot  -p'123456'  user >user.sql 2.查看mysql数据库字符集设置 mysql> show variables like 'character_set_%';+--------------------------+----------------------------+| Variable_name            | Value    

多路径软件常用操作(MPIO)

一:查看存储盘的路径 1. 查看MPIO的存储盘的路径 # lspath (适用于所有存储的MPIO路径查询) # mpio_get_config -Av (适用于DS3K/DS4K的MPIO路径查询) 2. 查看RDAC存储盘的路径 # fget_config -Av (适用于DS3K/DS4K的RDAC路径查询) 3.查看SDDPCM存储盘的路径 # pcmpath query device (适用于DS6K/DS8K和v7000的SDDPCM路径查询) 4. 查看当前操作系统自带的支持IB

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符

jQuery的常用操作

梳理一下jQuery的常用操作 jQuery隐藏显示对象 id为test的元素的display修改成了"none",即隐藏了id为test的元素:$('#test').css('display','none') 或 $('#test').style.display="none" 我们经常用到的是切换一个元素的隐藏与现实,下面给出代码: var show = $('#test').css('display');//获取id为test的元素的display的值$('#t

MongoDB常用操作

1.MongoDB常用操作 1.1数据库的操作命令 1.创建数据库,使用命令 use 数据库名称 ,如 use sxf. *注意: 1.use 命令后跟的数据库名,如果存在就进入此数据库,如果不存在就创建,所以这种创建方式又叫隐式创建 2.使用命令use sxf创建数据库后,并没有真正生成对应的数据文件,如果此时退出,此数据库将被删除,只有在此数据库中创建集合后,才会真正生成数据文件 2. 删除当前数据库,使用命令 db.dropDatabase() 3.查看所有数据库,使用命令 show db