Python使用Pandas库常见操作详解

  • Post category:Python

请看下面的完整攻略。

Python使用Pandas库常见操作详解

Pandas是一个数据处理库,它提供了简化数据操作的工具和方法。本文将详细讲解Pandas库常见操作,包括如何创建DataFrame对象、读取数据、选择和过滤数据、排序等。

创建DataFrame对象

DataFrame是Pandas中最基本的对象之一,它是一个二维的、类似于表格的数据结构。下面是创建DataFrame对象的两种常见方法。

方法一:使用字典创建DataFrame对象

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)

输出结果:

       name  age sex
0     Alice   25   F
1       Bob   30   M
2   Charlie   35   M
3     David   40   M

方法二:使用列表创建DataFrame对象

import pandas as pd

data = [['Alice', 25, 'F'], 
        ['Bob', 30, 'M'], 
        ['Charlie', 35, 'M'], 
        ['David', 40, 'M']]
columns = ['name', 'age', 'sex']
df = pd.DataFrame(data, columns=columns)
print(df)

输出结果:

       name  age sex
0     Alice   25   F
1       Bob   30   M
2   Charlie   35   M
3     David   40   M

读取数据

在Pandas中,可以很方便地读取多种格式的数据文件,例如csv、excel、json、sql等等。这里以读取csv格式的文件为例。

import pandas as pd

df = pd.read_csv('data.csv')
print(df)

其中,data.csv是保存了数据的csv文件。读取该文件后,可以对数据进行进一步的操作。

选择和过滤数据

Pandas提供了多种方法来选择和过滤数据,包括使用列名、使用行号、使用判断条件等等。

使用列名选择数据

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 选择单列数据
print(df['name'])
print(df[['name', 'age']])

输出结果:

0      Alice
1        Bob
2    Charlie
3      David
Name: name, dtype: object
       name  age
0     Alice   25
1       Bob   30
2   Charlie   35
3     David   40

使用行号选择数据

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 选择单行数据
print(df.iloc[0])
print(df.iloc[[0, 2]])

# 选择行/列子集
print(df.iloc[0:2, 1:3])

输出结果:

name    Alice
age        25
sex         F
Name: 0, dtype: object
      name  age sex
0    Alice   25   F
2  Charlie   35   M
   age sex
0   25   F
1   30   M

使用判断条件选择数据

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 使用判断条件选择数据
print(df[df['age'] > 30])
print(df[(df['age'] > 30) & (df['sex'] == 'M')])

输出结果:

      name  age sex
2  Charlie   35   M
3    David   40   M
      name  age sex
3    David   40   M

排序

Pandas提供了多种方法来对数据进行排序,包括按列排序、按行排序、按多列排序等等。

按列排序

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 按照age列升序排序
print(df.sort_values(by='age'))

输出结果:

       name  age sex
0     Alice   25   F
1       Bob   30   M
2   Charlie   35   M
3     David   40   M

按行排序

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 按照行索引升序排序
print(df.sort_index())

输出结果:

       name  age sex
0     Alice   25   F
1       Bob   30   M
2   Charlie   35   M
3     David   40   M

按多列排序

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 30, 35, 40], 
        'score': [85, 90, 80, 95]}
df = pd.DataFrame(data)

# 按照age列升序、score列降序排列
print(df.sort_values(by=['age', 'score'], ascending=[True, False]))

输出结果:

       name  age  score
0     Alice   25     85
1       Bob   30     90
2   Charlie   35     80
3     David   40     95

这里仅仅介绍了Pandas库的一些基本操作,如果想要更深入了解,可以参考Pandas官方文档。