栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas库--DataFrame常用操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas库--DataFrame常用操作

文章目录
  • 前言
  • 一、DataFrame创建
    • 1.基于列表创建
    • 2.基于字典创建
  • 二、查询
    • 1.df直接查询
      • ① 查询一列
      • ② 条件查询
    • 2.query()方法
      • ① 条件查询
      • ② 带有变量的查询(用@变量)
  • 三、增加
    • 1.增加列
      • ① 直接加:在最后一列加新的列
      • ② insert方法:可以指定位置加
    • 2.增加行
      • ① loc函数:增加一行
      • ② 增加多行
  • 四、更新(改)
    • 1. 更新整行值
    • 2. 更新某个值
  • 五、删除
    • 1. 删除行
    • 2. 删除列
  • 六、遍历


前言

本篇文章将会持续更新,记录在日常工作中,容易遇到的pandas库DataFrame中的常用操作。


一、DataFrame创建 1.基于列表创建
data = [['Jack', 10], ['Tom', 12], ['Lucy', 13]]
columns = ['Name', 'Age']
df_by_list = pd.DataFrame(data, columns=columns)
print(df_by_list)

输出:

   Name  Age
0  Jack   10
1   Tom   12
2  Lucy   13
2.基于字典创建
row = {
            'Name': ['Jack', 'Tom', 'Lucy'],
            'Age': [10, 12, 13]
        }
df_by_dict = pd.DataFrame(row)
print(df_by_dict)

输出:

   Name  Age
0  Jack   10
1  Tome   12
2  Lucy   13
二、查询 1.df直接查询 ① 查询一列
names = df['Name'].tolist()
print(names)

输出:

['Jack', 'Tom', 'Lucy']

② 条件查询
ages = df[(df['Age'] > 10) & (df['Age'] < 13)]
print(ages)

输出:

  Name  Age
1  Tom   12
2.query()方法 ① 条件查询
result = df.query('Age > 10 & Age < 13')
print(result)

输出:

  Name  Age
1  Tom   12
② 带有变量的查询(用@变量)
names = ['Tom', 'Lily', 'Sam']
result = df.query('Name not in @names')
print(result)

输出:

   Name  Age
0  Jack   10
2  Lucy   13
三、增加 1.增加列 ① 直接加:在最后一列加新的列
df['Gender'] = ['M', 'M', 'F']
print(df)

输出:

   Name  Age Gender
0  Jack   10      M
1   Tom   12      M
2  Lucy   13      F
② insert方法:可以指定位置加
df.insert(0, 'Gender', ['M', 'M', 'F'])
print(df)

输出:

  Gender  Name  Age
0      M  Jack   10
1      M   Tom   12
2      F  Lucy   13
2.增加行 ① loc函数:增加一行
df.loc[len(df.index)] = ('Lily', 20)
print(df)

输出:

   Name  Age
0  Jack   10
1   Tom   12
2  Lucy   13
3  Lily   20

注意: 如果不加在最后一行,数据将会被替换,例:

df.loc[1] = ('Lily', 20)
print(df)

输出:

   Name  Age
0  Jack   10
1  Lily   20
2  Lucy   13
② 增加多行
data1 = [['Lily', 23], ['Sam', 35]]
columns1 = ['Name', 'Age']
df1 = pd.DataFrame(data1, columns=columns1)
df2 = pd.concat([df, df1], ignore_index=True)
print(df2)

输出:

   Name  Age
0  Jack   10
1   Tom   12
2  Lucy   13
3  Lily   23
4   Sam   35

注意:
1.ignore_index=True 参数表示重新设置索引
2.append方法即将过时,建议用concat方法
3.concat方法要求两个df需要有相同的列名

四、更新(改) 1. 更新整行值
data1 = [['Lily', 23], ['Sam', 35]]
columns1 = ['Name', 'Age']
new_df = pd.DataFrame(data1, columns=columns1)
df.update(new_df)
print(df)

输出:

   Name   Age
0  Lily  23.0
1   Sam  35.0
2  Lucy  13.0
2. 更新某个值
df.loc[0, 'Age'] = 25
print(df)

输出:

   Name  Age
0  Jack   25
1   Tom   12
2  Lucy   13
五、删除 1. 删除行
df = df.drop(df[(df['Age'] > 10) & (df['Age'] < 13)].index)
print(df)

输出:

   Name  Age
0  Jack   10
2  Lucy   13
2. 删除列
df = df.drop('Age', axis=1)
print(df)

输出:

   Name
0  Jack
1   Tom
2  Lucy

注意:
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)

  • labels:要删除的行或列,用列表给出
  • axis:默认为0,指要删除的是行,删除列时需指定axis为1
  • index :直接指定要删除的行,删除多行可以使用列表作为参数
  • columns:直接指定要删除的列,删除多列可以使用列表作为参数
  • inplace: 默认为False,该删除操作不改变原数据;inplace = True时,改变原数据
六、遍历
for index, row in df.iterrows():
    print(index)
    print(row['Name'])
    print(row['Age'])

输出:

0 Jack 10
1 Tom 12
2 Lucy 13

注意: 这里的iterrows()返回值为元组,(index,row),index即为行索引,row就是一行的所有数据,可通过字段名获取到


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994694.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号