记录维维的每一篇Hello World

13.jpg

导入pandas工具包

  1. import pandas as pd
  2. import numpy as np

创建数据表

  1. data = {
  2. 'name': ['张三', '李四', '王五', '赵六', '麻子'],
  3. 'sex': ['男', '男', '女', '男', np.nan],
  4. 'age': [19, 18, 21, 23, np.nan]
  5. }
  6. df = pd.DataFrame(data)

查看数据表行列数

  1. row, col = df.shape

查看数据表的值

  1. values = df.values

查看数据表列名称

  1. header = df.columns

查看数据表前两行数据

  1. head = df.head(2)

查看数据表后两行数据

  1. tail = pd.tail(2)

查看name的第一行

  1. name = df['name'][0]

数据表的索引

  1. index = df.index

查看第一行数据

  1. d = df.loc[0]

查看一到二行数据

  1. d = df.iloc[1:3]

设置年龄为索引列,查看20岁以下的数据

  1. df.set_index('age')
  2. r = df.loc[:'20']

查看0,2,4行的4,5列

  1. r = df.iloc[[0,2,4],[4,5]]

查看sex是否为女

  1. r = df['sex'].isin(['女'])

查看sex为男或者na的数据

  1. r = df.loc[df['sex'].isin(['男','na'])]

使用NULL对NA进行填充

  1. df.fillna(value='NULL')

使用列age的均值对NA进行填充

  1. df['age'].fillna(df['age'].mean())

字母小写

  1. df['name']=df['name'].map(str.lower)

字符替换

  1. df['name'].replace('张三', '张总')

数据表合并

  1. df1=pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006,1007,1008],
  2. "gender":['male','female','male','female','male','female','male','female'],
  3. "pay":['Y','N','Y','Y','N','Y','N','Y',],
  4. "m-point":[10,12,20,40,40,40,30,20]})
  5. df_inner=pd.merge(df,df1,how='inner') # 匹配合并,交集
  6. df_left=pd.merge(df,df1,how='left')
  7. df_right=pd.merge(df,df1,how='right')
  8. df_outer=pd.merge(df,df1,how='outer') #并集

设置索引列

  1. df_inner.set_index('age')

按age大小排序

  1. df.sort_values(by=['age'])

按照索引列排序

  1. df.sort_index()

按条件赋值

  1. df['sex1'] = np.where(df['sex'] == '男', 'male', 'famale')

按条件赋值

  1. df.loc[(df['sex1'] == 'male') & (df['age'] >= 20), 'sign']=1

根据已有数据表创建新数据表

  1. pd.DataFrame(
  2. (x.split('a') for x in df['sex1']),
  3. index=df.index, columns=['low','upp']
  4. )

截取前三个数据创建新数据表

  1. df2 = pd.DataFrame(df['sex'].str[:3])

数据筛选

  1. # 与
  2. a = df.loc[(df['age'] > 20) & (df['sex'] == '男'), ['name', 'age', 'sex']]
  3. # 或
  4. b = df.loc[(df['age'] > 22) | (df['sex'] == '男'), ['name', 'age', 'sex']]
  5. # 非
  6. c = df.loc[(df['sex'] != '男'), ['name', 'age', 'sex']]
  7. # 求数量
  8. d = df.loc[(df['sex'] != '女'), ['name', 'age', 'sex']].count()
  9. # 求name数量
  10. d = df.name.count()
  11. # 使用query函数进行筛选
  12. e = df.query('sex == ["男", "女"]')

求和

  1. age_s = df.age.sum()

写入到csv文件

  1. # index行索引
  2. # header列名称
  3. # mode写入方式
  4. df.to_csv('E:\\123.csv', index=True, header=True, mode='w')

写入到excel文件

  1. # sheet_name工作表名字
  2. df_inner.to_excel('E\\123.xlsx', sheet_name='sheet_one')

读取csv文件

  1. df3 = pd.read_csv('E:\\123.csv')

读取excel文件

  1. df4 = pd.read_excel('E\\123.xlsx', sheet_name='sheet_one')

注意事项

1、这些仅为部分方法,更多方法百度

python环境

电脑:Windows10

python:3.10.4