Python基础:读取数据及统计

197 阅读2分钟

1.读取数据,把读取的数据写入dataframe

import pandas as pd#调用python中的包,就是别人给你的暗号,你说pandas.A,就知道你想做啥运算
df=pd.read_excel('./re.xlsx',engine='openpyxl')

2.修改列名

df['name']=df['姓名']
df.columns=['node']
#两种方法都可以
  1. 了解数据的基本信息及统计性质

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:标准差
minmax:最小值,最大值
25%、50%、75%:对应的分位点,意味着,25%、50%、75%的数值都小于多少

补充:箱线图

统计定义:

  • IQR = 75%分位点值-25%分位点值。
    • 最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
    • 最大观测值为max = Q3 -1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
  1. 获取某列有哪几个值并展示

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年及以后)'])