Python Pandas 详细 查看 处理 汇总

参考:https://www.runoob.com/pandas/pandas-tutorial.html

1 . 安装

    pip install pandas

2 . Series

Series 由索引(index)和列组成

pandas.Series( data, index, dtype, name, copy)
    import pandas as pd

创建


import pandas as pd
import pandas as np

print(pd.Series([3,0.5,"liucd"]))

print(pd.Series(["i","ii","iii"],[3,0.5,"liucd"]))

print(pd.Series({"a1":"aa","a2":"bb"}))

读取

a=pd.Series({"a1":"aa","a2":"bb"})
print(a["a1"],a[1])

输出

3          i
0.5       ii
liucd    iii
dtype: object
aa bb

3 . DataFrame

DataFrame表格型   (行\列 &索引)

3.1 导入 csv 或 xlsx文件

    df=pd.read_csv("nba.csv")
    df1=pd.DataFrame(pd.read_csv("nba.csv",header=10))
    df2=pd.read_excel("名单.xlsx")
    print(df,df1)

3.2.1 用pandas创建数据表 (一)

    df = pd.DataFrame({
        "id":[1001,1002,1003,1004,1005,1006],
        "date":pd.date_range('20130102', periods=6),
        "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
        "age":[23,44,54,32,34,32],
        "category":['100-A','100-B','110-A','110-C','210-A','130-F'],
        "price":[1200,np.NaT,2133,5433,np.NaT,4432]},
        columns =['id','date','city','category','age','price'])
    print(df)

3.2.1 用pandas创建数据表 (二)

    df2=pd.DataFrame([
        [1001,"liucd",372832197612068535,65,135.5,"男","山东","高兴"],
        [1002,"jiangdab",512750197406168531,29,120,"女","四川","高兴"],
        [1005,"xiaonz",371321199009113651,18,98,"女","山东","高兴"],
        [1004,"liuyh",np.NaT,15,108,"男","山东","高兴"]],
        columns=["编号","姓名","身份证号码","年龄","体重","性别","省份","情绪"])
    print(df2)
    Id       date         city category  age price
    0  1001 2013-01-02     Beijing     100-A   23  1200
    1  1002 2013-01-03           SH    100-B   44   NaT
    2  1003 2013-01-04   guangzhou     110-A   54  2133
    3  1004 2013-01-05     Shenzhen    110-C   32  5433
    4  1005 2013-01-06     shanghai    210-A   34   NaT
    5  1006 2013-01-07     BEIJING     130-F   32  4432

         编号        姓名               身份证号码  年龄     体重 性别  省份  情绪
    0  1001     liucd  372832197612068535  65  135.5  男  山东  高兴
    1  1002  jiangdab  512750197406168531  29  120.0  女  四川  高兴
    2  1005    xiaonz  371321199009113651  18   98.0  女  山东  高兴
    3  1004     liuyh                 NaT  15  108.0  男  山东  高兴
  1. 查看数据表信息

  2. 引入

  import pandas as pd
  df=pd.read_excel("制造中心-车身部花名册3.23.xlsx")

4.0 查看共多少行

pd.index.size

4.1 查看单/多行

    print(df2.loc[3])
    print(df2.loc[3].values)
    print(df2[3:4])
    print(df2[3:4].values)
  • 竖版显示
    *
        序号                        1
    姓名                      王庆帅
    邮箱          79117901@qq.com
    工号                  2018060
    状态                       离职
    出生日期    1986-09-02 00:00:00
    手机              15562109936
    身份证      371122198609023136
    Name: 0, dtype: object
  • 横版显示
     序号   姓名               邮箱  ...       出生日期           手机                 身份证
    0   1  王庆帅  79117901@qq.com  ... 1986-09-02  15562109936  371122198609023136
    1   2  高继朝   6007200@qq.com  ... 1989-08-03  13573971069  371321198908036919

[2 rows x 8 columns]

4.2 查看列


    print(df.columns.values)

    print(df["姓名"])
    print(df[df.columns[2]])
  • 列标签
  Index(['姓名', '邮箱', '工号', '状态', '出生日期', '手机', '身份证'], dtype='object'
  • 显示列
  0     王庆帅
  1     高继朝
  2     黄传军
  3     张传纲
  4     牛敦玉
  5     刘乃军
  6     孙同超
  7     王治斌

4.2 维度查看/区域查看


print("维度(行列)查看",df2.shape)
print("区域 2行 3列",df2.iloc[:2,:3])
print("区域 1,2,4行,2,5列",df2.iloc[[1,2,4],[2,5]])
    区域 2行 3列      编号        姓名               身份证号码
    0  1001     liucd  372832197612068535
    1  1002  jiangdab  512750197406168531
    区域                   身份证号码  未成年
    1    512750197406168531    N
    2    371321199009113651    Y
    new   37132120611258530  1

4.3 数据表基本信息

print("info",df2.info())

4.4 列格式

print(df2.dtypes)
print(df2["身份证号码"].dtype)

4.5 统计空值

print(df2.isnull())

4.6 查看数据表的值

print(df2.values)

4.7 查看列名称 标签

print("列标签",df2.columns)
print("单一列标签",df2.columns[2])

5 . 数据清洗

三 数据清洗

1 用数字0 填充空值

print(df2.fillna(value=0))

2 更改列名称

print(df2.rename(columns={"姓名":"性命"}))

3 数据替换

print(df2["姓名"].replace("xiaonz","xiaonz---2"))

4 清洗格式错误数据## 清洗数据格式

    df6=pd.DataFrame({
        "日期" : ['2020/12/01', '2020/12/02', '20201226'],
        "销售额" : [50, 30, 78]},index=["day1","day2","day3"])
    df6["日期"]=pd.to_datetime(df6["日期"])
    print(df6)
         日期  销售额
    day1 2020-12-01   50
    day2 2020-12-02   30
    day3 2020-12-26   78

6 .数据预处理

6.1 把列作为索引/重设索引

print(df2.set_index("身份证号码"))
print(df2.reset_index())

6.2 按列 排序

print("*按列 排序*",df2.sort_values("编号"))

6.3 插入列

df2.insert(5,column="未成年",value=["Y","N","Y","Y"])
print("增加 未成年 列",df2)

6.4 插入(替换)行

df2.loc["new"]=[1008,"liuyi",37132120611258530,17,"Y",128,"男","上海","特高"]

print("增加 刘亿 行",df2)

6.5 如果年龄大于18显示 成年,否则 未成年

df3=df2.copy()
df3["未成年"][df3["年龄"]>=18]="成年"
df3["&#x672A;&#x6210;&#x5E74;"][df3["&#x5E74;&#x9F84;"]<18]="未成年" print("判断是否成年",df2) < code></18]="未成年">

6.6 多条件筛选 山东 + 体重>100 &和 | 或

bf4=df2[(df2["&#x5E74;&#x9F84;"]<18) &(df2["省份"]="="&#x5C71;&#x4E1C;")],"&#x7279;&#x522B;&#x6807;&#x8BB0;"" print("成年+山东",bf4) < code></18)>

6.7 省份满足山东

print("&#x7701;&#x4EFD;&#x6EE1;&#x8DB3;&#x5C71;&#x4E1C;",df2[df2["&#x7701;&#x4EFD;"]=="&#x5C71;&#x4E1C;"])

6.8 多条件筛选

print("&#x63D0;&#x53D6;&#x4E0A;&#x6D77;&#x548C;&#x56DB;&#x5DDD;&#x7684;",df2[df2["&#x7701;&#x4EFD;"].isin(["&#x4E0A;&#x6D77;","&#x56DB;&#x5DDD;"])])

7 .数据汇总

7.1 汇总

    print("&#x6570;&#x636E;&#x6C47;&#x603B; &#x7EB5;&#x5411;",df2["&#x5E74;&#x9F84;"].sum())
    print("&#x6570;&#x636E;&#x6C47;&#x603B; &#x6A2A;&#x5411;",df2.sum(axis=1))

7.2 对指定字段 汇总,例如 山东的 几个

    print(df2.groupby("&#x7701;&#x4EFD;").count())

7.3

7 .Pandas CSV

CSV   &#x6570;&#x5B57;+&#x6587;&#x672C;  = &#x8868;&#x683C;   &#x9017;&#x53F7;  &#x5206;&#x5272;

载入

data=pd.read_csv("nbb.csv",encoding="utf-8")
print(data)
print(data.to_string())
print(data.head(10))
    &#x59D3;&#x540D;  &#x5E74;&#x9F84;        &#x7701;&#x4EFD;
0    liucd  28  shandong
1  jiangdb  18   sichuan
2   xiaonz  22  shandong

创建

data1=pd.DataFrame([["liucd",28,"shandong"],["jiangdb",18,"sichuan"],["xiaonz",22,"shandong"],["哎"]],columns=["姓名","年龄","省份"])
data1.to_csv("名单.csv")
print(data1)

打印文本信息

    print(data1.info())

`

RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
# Column Non-Null Count Dtype

Original: https://blog.csdn.net/sdgpcc2000/article/details/121094323
Author: 刘长栋
Title: Python Pandas 详细 查看 处理 汇总

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/679537/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球