1.读取数据,把读取的数据写入dataframe
import pandas as pd#调用python中的包,就是别人给你的暗号,你说pandas.A,就知道你想做啥运算
df=pd.read_excel('./re.xlsx',engine='openpyxl')
2.修改列名
df['name']=df['姓名']
df.columns=['node']
#两种方法都可以
-
了解数据的基本信息及统计性质
import numpy as np
df.info()##读取数据集的字段信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 136124 entries, 0 to 136123
Data columns (total 14 columns):
# Column 列名 Non-Null(是否为空) Count Dtype (字符类型)
--- ------ -------------- -----
0 re1 136124 non-null int64
1 re2 136124 non-null object
2 re3 136124 non-null object
dtypes: float32(5), int64(3), object(6)
memory usage: 11.9+ MB
print (df.describe())
#你将得到数据表中各列的描述性统计值
count:出现的次数
mean:平均值
std:标准差
min、max:最小值,最大值
25%、50%、75%:对应的分位点,意味着,25%、50%、75%的数值都小于多少
补充:箱线图
统计定义:
- IQR = 75%分位点值-25%分位点值。
-
- 最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
- 最大观测值为max = Q3 -1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
-
获取某列有哪几个值并展示
a=df['a'].value_counts()
#获取a列不同值出现的次数
a=df['a'].value_counts(normalize=True,ascending=True)
#获取a列不同值出现的占比并升序排序
print (a)
reason_list=list(a.index)
#将所获取的列的值写入list,为什么是a.index。
#因为a是一个series,series是每个值出现的次数,每个值就是对应的index,我们需要读取的是这个值
#所以要加a.index
print (reason_list)
df.sort_values(by='b',ascending=True).head(10)
#按照'b'对df升序排列,并且只显示前10行
补充:结果显示的设定
pd.set_option('display.max_rows',500)#最多500行
pd.set_option('display.max_columns',500)#最多500列
pd.set_option('display.max_colwidth',6)#每列最宽多少
pd.set_option('display.width', 1000)#一行最宽多少
5.统计空值个数
num = df.isna().sum()
6.转化为时间格式并新增一列
df['create_time']=pd.to_datetime(df['create_time退款创建时间(2021年及以后)'])