pandas常用功能

一、表格操作

1、创建/转换为表格:

空表

df=pd.DataFrame()

指定列名

df=pd.DataFrame(columns=['A','B'])

指定列名和该列数据:

df = pd.DataFrame({
       "weekday": df_dt.dt.weekday/6.0,
       "timeindex": (df_dt.dt.hour * 60 + df_dt.dt.minute)/(24*60.0),
       "number": raw_data["number"].astype(int)}) 

2、删除列:

del df['time_x']
df.drop(['industry_id'],axis=1)

3、添加/修改列:

df['time_idx']=df['time'].dt.hour * 60

4、修改列名:

指定修改:

df.rename(columns={'time_y':'time'},inplace=True)

全部修改:

dataall.columns=['time','cross','direction','lf','sf']

5、读取/写入:

读取csv:

df=pd.read_csv('jiaotong.csv')

默认header表头为第一行,encoding编码方式为utf-8,sep分隔符为‘,’

读取xls:

dftmp=pd.read_excel()

写入csv:

dataall.to_csv('jiaotong_all2019.01-02.csv', index=False,header=True,encoding='utf-8')

6。查看表格基本信息:

头尾数据:

df.head(10)
df.tail(10)

在这里插入图片描述

每列缺失信息,数据类型查看:

df.info()

在这里插入图片描述

统计信息:

df.describe()
df['列名'].describe()

表格数据量:

dataall.shape

表格某列(类别)取值范围:

df['列名'].unique().values

#不同的取值
df['ad_id'].value_counts()

查看表格列名:

dataall_goodcopy.columns

dataall_goodcopy.columns.vaules

7、表格聚合groupby:

按照某些列,相同取值聚合,计算其余列的sum,mean,median等数据

dataall.groupby(['日期','路口'])['车速|车流'].sum()

处理前
在这里插入图片描述
处理后
在这里插入图片描述

聚合表格后生成新表:

expnum = pd.DataFrame(expnum.groupby(['ad_id'])["expnum"].mean())
expnum.reset_index(inplace=True)
df1.rename(columns={'c':'D'},inplace=True)
expnum.head()

8、重置行索引reset_index():

参数:inplace=True

9、表格某列取值->列名:pivot

mydataall.pivot(index='time', columns='cross_name', values='allFlow').reset_index()

把time取值相同的聚合为一行,crossname不同的单独为列,取值为allflow
在这里插入图片描述
转换后:
在这里插入图片描述

9、表格列名->某列取值:melt(pivot逆操作)

在这里插入图片描述
删除del dataall[‘cross’],del dataall[‘direction’]后

dataall=dataall.melt(id_vars=['time','cross-direction'], var_name='myVariable', value_name='flow').sort_values('time')

在这里插入图片描述

10、两个表格连接操作

内连接

dataall_goodcopy=pd.merge(dataall_goodcopy, dataother, on=['date','time_idx'], 

外连接

11、两个表格连接操作

submit_data = pd.concat([df1,df2], axis=1)

12、表格每行apply操作

how="right")dataall_goodcopy['dayafterwork']=dataall_goodcopy['dayofyear'].apply(lambda t: t-41 if (t-41)>0 else -999)

13、定位单元格、行操作

根据列取值:

train.loc[train[‘happiness’] != -8]

根据列名和行index:

df1.loc[行数,‘列名’] =10

根据列索引和行索引:

df1.iloc[2,1] =10

当然可以!Pandas是一个强大的数据分析工具,提供了许多常用的方法来处理和操作数据。以下是一些常用Pandas方法: 1. 读取数据: - `read_csv()`:从CSV文件中读取数据。 - `read_excel()`:从Excel文件中读取数据。 - `read_sql()`:从SQL数据库中读取数据。 2. 数据预览: - `head()`:查看数据的前几行。 - `tail()`:查看数据的后几行。 - `info()`:查看数据的基本信息,如列名、数据类型等。 - `describe()`:查看数据的统计信息,如均值、标准差等。 3. 数据选择和过滤: - `loc[]`:通过标签选择行和列。 - `iloc[]`:通过位置选择行和列。 - `[]`:通过列名选择列。 4. 数据清洗和处理: - `dropna()`:删除包含缺失值的行或列。 - `fillna()`:填充缺失值。 - `replace()`:替换特定值。 - `duplicated()`:检测重复值。 - `drop_duplicates()`:删除重复值。 5. 数据排序和排名: - `sort_values()`:按照指定列的值进行排序。 - `rank()`:计算每个元素的排名。 6. 数据分组和聚合: - `groupby()`:按照指定列进行分组。 - `concat()`:按照指定轴将多个DataFrame合并。 - `merge()`:根据指定的列将两个DataFrame连接。 8. 数据可视化: - `plot()`:绘制数据的折线图、柱状图等。 - `hist()`:绘制数据的直方图。 - `scatter()`:绘制数据的散点图。 这些只是Pandas中的一部分常用方法,还有很多其他功能强大的方法可以用于数据处理和分析。如果你有具体的问题或者需要了解更多方法,请告诉我!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值