Python之DataFrame基础用法

本文详细介绍了Python中DataFrame的基础操作,包括如何利用字典和数组创建DataFrame,读取DataFrame的行、列和单元格,以及如何写入、插入、删除和修改DataFrame的数据。此外,还讲解了DataFrame的去重和更改列名的方法。
摘要由CSDN通过智能技术生成

引入库

import pandas as pd
import numpy as np

pandas官方文档:https://pandas.pydata.org/pandas-docs/stable

1. 创建DataFrame

1.1 利用字典创建

data={
   "one":np.random.randn(4),"two":np.linspace(1,4,4),"three":['zhangsan','李四',999,0.1]}
df=pd.DataFrame(data,index=[1,2,3,4])
df
one two three
1 1.087681 1.0 zhangsan
2 -1.702143 2.0 李四
3 0.153510 3.0 999
4 -0.206473 4.0 0.1

索引

  • 如果创建df时不指定索引,默认索引将是从0开时,步长为1的数组。
  • df的行、列可以是不同的数据类型,同行也可以有多种数据类型。
  • df创建完成后可以重新设置索引,通常用到3个函数:set_indexreset_indexreindex
  1. set _index用于将df中的一行或多行设置为索引。

    参数drop默认为True,意为将该列设置为索引后从数据中删除,如果设为False,将继续在数据中保留该行。

# df.set_index('one')
df.set_index(['one'],drop=False)
one two three
one
1.087681 1.087681 1.0 zhangsan
-1.702143 -1.702143 2.0 李四
0.153510 0.153510 3.0 999
-0.206473 -0.206473 4.0 0.1
  1. 如果要设置的索引不在数据中,可以通过
df.index=['a','b','c','d']
  1. reset_index用于将索引还原成默认值,即从0开始步长为1的数组。
df.reset_index(drop=True)

参数drop默认值为False,意为将原来的索引做为数据列保留,如果设为True,原来的索引会直接删除。

1.2 利用数组创建

data=np.random.randn(6,4)#创建一个6行4列的数组
df=pd.DataFrame(data,columns=list('ABCD'),index=[1,2,'a','b','2006-10-1','第六行'])
df
A B C D
1 -1.468370 0.148891 -0.463374 0.201060
2 0.483324 -0.518111 -1.238487 0.949822
a -0.909020 -0.111295 -0.833337 1.560756
b -0.034978 0.036142 -1.613437 2.040824
2006-10-1 -0.312716 -2.481801 -0.607386 -0.763655
第六行 0.300200 -0.618587 0.187557 0.416438

1.3 创建一个空DataFrame

pd.DataFrame(columns=('id','name','grade','class'))

2. 读取DataFrame

2.1 按列读取

  1. df.列名:每次读取一列
  2. df['列名']df[['列名1','列名2','列名n']]df.loc[:,['列名']]
df[['A','B','D']]
df.loc[:,['A','B','D']]
A B D
1 -1.468370 0.148891 0.201060
2 0.483324 -0.518111 0.949822
a -0.909020 -0.111295 1.560756
b -0.034978 0.036142 2.040824
2006-10-1 -0.312716 -2.481801 -0.763655
第六行 0.300200 -0.618587 0.416438

PS: df[‘A’]和 df[[‘A’]]都能读取第一列数据,但它们返回的数据结构不同:

  • type(df[‘A’]): pandas.core.series.Series
  • type(df[[‘A’]]): pandas.core.frame.DataFrame
  1. df.iloc[:,colNo]: 按列号读取。

    有时候我们可能更希望通过列号(1,2,3…)或读取数据而不是列名,又或着我们要读取多行的时候一个一个输入列名是很麻烦的,我们希望有最简单的代码读取我们最想要的内容,.iloc方法可以让我们通过列号索引数据,具体如下:

    • df.iloc[:,:3]读取前3列数据
    • df.iloc[:,:]读取所有列

    PS: 这其实是按单元格读取数据的特殊写法,如果有疑问请看 2.3 按单元格读取数据。

df.iloc[:,2:]
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,可以使用多个库来操作DataFrame,其最常用的是pandas库。下面是一些常见的DataFrame操作用法: 1. 创建DataFrame: 可以使用pandas库的DataFrame函数来创建一个DataFrame对象,例如: ``` import pandas as pd # 从列表创建DataFrame data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]] df = pd.DataFrame(data, columns=['Name', 'Age']) # 从字典创建DataFrame data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]} df = pd.DataFrame(data) ``` 2. 查看DataFrame数据: 使用head()函数可以查看DataFrame的前几行数据,默认显示前5行。例如: ``` df.head() # 显示前5行数据 df.head(10) # 显示前10行数据 ``` 3. 访问DataFrame列: 可以使用列名来访问DataFrame的列数据,也可以使用切片语法来访问多个列数据。例如: ``` df['Name'] # 访问名为'Name'的列 df[['Name', 'Age']] # 访问名为'Name'和'Age'的两列 ``` 4. 过滤数据: 可以使用布尔条件过滤DataFrame的数据。例如: ``` df[df['Age'] > 30] # 过滤出年龄大于30的数据行 ``` 5. 添加和删除列: 可以使用赋值语句来添加新列,也可以使用del语句来删除列。例如: ``` df['Gender'] = ['F', 'M', 'M'] # 添加名为'Gender'的新列 del df['Age'] # 删除名为'Age'的列 ``` 6. 数据排序: 可以使用sort_values()函数对DataFrame进行排序。例如: ``` df.sort_values('Age') # 按年龄升序排序 df.sort_values('Age', ascending=False) # 按年龄降序排序 ``` 这些只是DataFrame的一些基本用法pandas库还提供了更多功能丰富的操作函数和方法,使得对数据进行处理更加灵活和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值