Pandas库在Python中的实际应用操作详解

一、函数

1、常用的统计学函数

函数名称 描述说明
count() 统计某个非空值的数量
sum() 求和
mean() 求均值
median() 求中位数
std() 求标准差
min() 求最小值
max() 求最大值
abs() 求绝对值
prod() 求所有数值的乘积

在Pandas中这些函数是默认处理某一列的具体数据,所以结果是那一列的操作结果

案例

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)

# 计算每列的均值
mean_values = df.mean()
print(mean_values)

# 计算每列的中位数
median_values = df.median()
print(median_values)

#计算每列的方差
var_values = df.var()
print(var_values)

# 计算每列的标准差
std_values = df.std()
print(std_values)

# 计算每列的最小值
min_values = df.min()
print("最小值:")
print(min_values)

# 计算每列的最大值
max_values = df.max()
print("最大值:")
print(max_values)

# 计算每列的总和
sum_values = df.sum()
print(sum_values)

# 计算每列的非空值数量
count_values = df.count()
print(count_values)

注意:numpy的方差默认为总体方差,pandas默认为样本方差

总体方差:

样本方差:

分母为n-1的样本方差的期望等于总体的方差,因此样本方差是总体方差的无偏估计。

注意:在处理数据量较少的情况下使用pandas的方差可能误差较大

2、重置索引

重置索引(reindex)可以更改原 DataFrame 的行标签或列标签,并使更改后的行、列标签与 DataFrame 中的数据逐一匹配。通过重置索引操作,您可以完成对现有数据的重新排序。如果重置的索引标签在原 DataFrame 中不存在,那么该标签对应的元素值将全部填充为 NaN。

reindex

reindex() 方法用于重新索引 DataFrame 或 Series 对象。重新索引意味着根据新的索引标签重新排列数据,并填充缺失值。如果重置的索引标签在原 DataFrame 中不存在,那么该标签对应的元素值将全部填充为 NaN。

语法

DataFrame.reindex(labels=None, index=None, columns=None, axis=None, method=None, copy=True, level=None, fill_value=np.nan, limit=None, tolerance=None)

参数

  1. labels

  2. 类型:数组或列表,默认为 None。

  3. 描述:新的索引标签。

  4. index

  5. 类型:数组或列表,默认为 None。

  6. 描述:新的行索引标签。

  7. columns

  8. 类型:数组或列表,默认为 None。

  9. 描述:新的列索引标签。

  10. axis

  11. 类型:整数或字符串,默认为 None。

  12. 描述:指定重新索引的轴。0 或 'index' 表示行,1 或 'columns' 表示列。

  13. method

  14. 类型:字符串,默认为 None。

  15. 描述:用于填充缺失值的方法。可选值包括 'ffill'(前向填充)、'bfill'(后向填充)等。

  16. copy:

  17. 类型:布尔值,默认为 True。

  18. 描述:是否返回新的 DataFrame 或 Series。

  19. level:

  20. 类型:整数或级别名称,默认为 None。

  21. 描述:用于多级索引(MultiIndex),指定要重新索引的级别。

  22. fill_value

  23. 类型:标量,默认为 np.nan。

  24. 描述:用于填充缺失值的值。

  25. limit:

  26. 类型:整数,默认为 None。

  27. 描述:指定连续填充的最大数量。

  28. tolerance:

  29. 类型:标量或字典,默认为 None。

  30. 描述:指定重新索引时的容差。

案例

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 重新索引行
new_index = ['a', 'b', 'c', 'd']
df_reindexed = df.reindex(new_index)
print(df_reindexed)

# 重新索引列
new_columns = ['A', 'B', 'C', 'D']
df_reindexed = df.reindex(columns=new_columns)
print(df_reindexed)

# 重新索引行,并使用前向填充
# 新的行索引 ['a', 'b', 'c', 'd'] 包含了原索引中不存在的标签 'd',使用 method='ffill' 进行前向填充,因此 'd' 对应的行填充了前一行的值。
new_index = ['a', 'b', 'c', 'd']
df_reindexed = df.reindex(new_index, method='ffill')
print(df_reindexed)

# 重新索引行,并使用指定的值填充缺失值
new_index = ['a', 'b', 'c', 'd']
df_reindexed = df.reindex(new_index, fill_value=0)
print(df_reindexed)

3、遍历

DataFrame 这种二维数据表结构,遍历会获取列标签

案例

import pandas as pd

series_data = pd.Series(['a','b','c','d','e','f',None])

print('Series:')
for item in series_data:
    print(item, end=' ')
    
#输出:
a b c d e f None 
3.1 DataFrame 遍历
dataFrame_data = pd.DataFrame({
    'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
})
# 遍历dataframe得到的是列标签
print('DataFrame:')
for item in dataFrame_data:
    print(item, end=' ')

#输出:
one two 

遍历行

itertuples() 方法用于遍历 DataFrame 的行,返回一个包含行数据的命名元组。

案例

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 使用 itertuples() 遍历行
for row in df.itertuples():
    print(row)
    for i in row:
        print(i)
#输出:
Pandas(Index='a', A=1, B=4, C=7)
a
1
4
7
Pandas(Index='b', A=2, B=5, C=8)
b
2
5
8
Pandas(Index='c', A=3, B=6, C=9)
c
3
6
9
# 忽略索引
for row in df.itertuples(index=False):
    print(row)
    for i in row:
        print(i)

itertuples() 是遍历 DataFrame 的推荐方法,因为它在速度和内存使用上都更高效。

遍历列

items() 方法用于遍历 DataFrame 的列,返回一个包含列名和列数据的迭代器。

案例

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 使用 items() 遍历列
for column_name, column_data in df.items():
    print(f"Column Name: {column_name}, Column Data: {column_data}")
#输出:
Column Name: A, Column Data: a    1
b    2
c    3
Name: A, dtype: int64
Column Name: B, Column Data: a    4
b    5
c    6
Name: B, dtype: int64
Column Name: C, Column Data: a    7
b    8
c    9
Name: C, dtype: int64

使用属性遍历

loc 和 iloc 方法可以用于按索引或位置遍历 DataFrame 的行和列。

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 使用 loc 遍历行和列
for index in df.index:
    for column in df.columns:
        print(f"Index: {index}, Column: {column}, Value: {df.loc[index, column]}")
        
        
# 输出:
Index: a, Column: A, Value: 1
Index: a, Column: B, Value: 4
Index: a, Column: C, Value: 7
Index: b, Column: A, Value: 2
Index: b, Column: B, Value: 5
Index: b, Column: C, Value: 8
Index: c, Column: A, Value: 3
Index: c, Column: B, Value: 6
Index: c, Column: C, Value: 9

在此总结Dataframe遍历方法,1.df.itertuples()遍历行 2.df.items()遍历列 3.获取df.index和df.colums使用loc和iloc来遍历行和列

4、排序

4.1 sort_index

sort_index 方法用于对 DataFrame 或 Series 的索引进行排序。

语法

DataFrame.sort_index(axis=0, ascending=True, inplace=False)
Series.sort_index(axis=0, ascending=True, inplace=False)

参数

  • axis:指定要排序的轴。默认为 0,表示按行索引排序。如果设置为 1,将按列索引排序。

  • ascending:布尔值,指定是升序排序(True)还是降序排序(False)。

  • inplace:布尔值,指定是否在原地修改数据。如果为 True,则会修改原始数据;如果为 False,则返回一个新的排序后的对象。

  • 案例:

    import pandas as pd
    
    # 创建一个示例 DataFrame
    data = {
        'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9]
    }
    df = pd.DataFrame(data, index=['b', 'c', 'a'])
    
    # 按行索引标签排序,不对对应的值排序
    df_sorted = df.sort_index()
    #输出:
       A  B  C
    a  3  6  9
    b  1  4  7
    c  2  5  8
    
    #按列索引标签降序排序
    df_sorted = df.sort_index(axis=1,ascending=False)
    print(df_sorted)
    # 输出:
       C  B  A
    b  7  4  1
    c  8  5  2
    a  9  6  3
    4.2 sort_values

    sort_values 方法用于根据一个或多个列的值对 DataFrame 进行排序。

    语法

    DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

    参数:

  • by:列的标签或列的标签列表。指定要排序的列。

  • axis:指定沿着哪个轴排序。默认为 0,表示按行排序。如果设置为 1,将按列排序。

  • ascending:布尔值或布尔值列表,指定是升序排序(True)还是降序排序(False)。可以为每个列指定不同的排序方向。

  • inplace:布尔值,指定是否在原地修改数据。如果为 True,则会修改原始数据;如果为 False,则返回一个新的排序后的对象。

  • kind:排序算法。默认为 'quicksort',也可以选择 'mergesort'(归并排序) 或 'heapsort'(堆排序)。

  • na_position:指定缺失值(NaN)的位置。可以是 'first' 或 'last'。

  • 案例:

    import pandas as pd
    
    # 创建一个示例 DataFrame
    data = {
        'A': [3, 2, 1],
        'B': [6, 5, 4],
        'C': [9, 8, 7]
    }
    df = pd.DataFrame(data, index=['b', 'c', 'a'])
    
    # 按列 'A' 排序
    df_sorted = df.sort_values(by='A')
    print(df_sorted)
    
    # 按列 'A' 和 'B' 排序
    df_sorted = df.sort_values(by=['A', 'B'])
    print(df_sorted)
    
    # 按列 'A' 降序排序
    df_sorted = df.sort_values(by='A', ascending=False)
    print(df_sorted)
    
    # 按列 'A' 和 'B' 排序,先按A列降序排序,如果A列中值相同则按B列升序排序
    df = pd.DataFrame({
        'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, 25, 35, 30],
        'Score': [85, 90, 80, 95, 88]
    })
    df_sorted = df.sort_values(by=['Age', 'Score'], ascending=[False, True])
    print(df_sorted)

    5、去重

    drop_duplicates 方法用于删除 DataFrame 或 Series 中的重复行或元素。

    语法:

    drop_duplicates(by=None, subset=None, keep='first', inplace=False)
    Series.drop_duplicates(keep='first', inplace=False)

    参数

  • by:用于标识重复项的列名或列名列表。如果未指定,则使用所有列。

  • subset:与 by 类似,但用于指定列的子集。

  • keep:指定如何处理重复项。可以是:

  • 'first':保留第一个出现的重复项(默认值)。

  • 'last':保留最后一个出现的重复项。

  • False:删除所有重复项。

  • inplace:布尔值,指定是否在原地修改数据。如果为 True,则会修改原始数据;如果为 False,则返回一个新的删除重复项后的对象。

  • 案例:

    import pandas as pd
    
    # 创建一个示例 DataFrame
    data = {
        'A': [1, 2, 2, 3],
        'B': [4, 5, 5, 6],
        'C': [7, 8, 8, 9]
    }
    df = pd.DataFrame(data)
    
    # 删除所有列的重复行,默认保留第一个出现的重复项
    df_unique = df.drop_duplicates()
    print(df_unique)
    
    # 删除重复行,保留最后一个出现的重复项
    df_unique = df.drop_duplicates(keep='last')
    print(df_unique)

    6、分组

    6.1 groupby

    groupby 方法用于对数据进行分组操作,这是数据分析中非常常见的一个步骤。通过 groupby,你可以将数据集按照某个列(或多个列)的值分组,然后对每个组应用聚合函数,比如求和、平均值、最大值等。

    语法

    DataFrame.groupby(by, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

    参数

  • by:用于分组的列名或列名列表。

  • axis:指定沿着哪个轴进行分组。默认为 0,表示按行分组。

  • level:用于分组的 MultiIndex 的级别。

  • as_index:布尔值,指定分组后索引是否保留。如果为 True,则分组列将成为结果的索引;如果为 False,则返回一个列包含分组信息的 DataFrame。

  • sort:布尔值,指定在分组操作中是否对数据进行排序。默认为 True。

  • group_keys:布尔值,指定是否在结果中添加组键。

  • squeeze:布尔值,如果为 True,并且分组结果返回一个元素,则返回该元素而不是单列 DataFrame。

  • observed:布尔值,如果为 True,则只考虑数据中出现的标签。

  • import pandas as pd
    
    # 创建一个示例 DataFrame
        data = {
            'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
            'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
            'C': [1, 2, 3, 4, 5, 6, 7, 8],
            'D': [10, 20, 30, 40, 50, 60, 70, 80]
        }
        df = pd.DataFrame(data)
    
        # 按列 'A' 分组
        grouped = df.groupby('A')
    
        # 查看分组结果
        for name, group in grouped:
            print(f"Group: {name}")
            print(group)
            print()
    
        mean = df.groupby(['A']).mean()
    	print(mean)
        #输出:
               C     D
        A             
        bar  4.0  40.0
        foo  4.8  48.0
        
        mean = grouped['C'].mean()
    	print(mean)
        #输出:
        A
        bar    4.0
        foo    4.8
        
        
        
        # 在分组内根据C列求平均值
        # transform用于在分组操作中对每个组内的数据进行转换,并将结果合并回原始 DataFrame。
        mean = grouped['C'].transform(lambda x: x.mean())
        df['C_mean'] = mean
        print(df)
        #输出:
             A      B  C   D  C_mean
        0  foo    one  1  10     4.8
        1  bar    one  2  20     4.0
        2  foo    two  3  30     4.8
        3  bar  three  4  40     4.0
        4  foo    two  5  50     4.8
        5  bar    two  6  60     4.0
        6  foo    one  7  70     4.8
        7  foo  three  8  80     4.8
    
    
        # 在分组内根据C列求标准差
        std = grouped['C'].transform(np.std)
        df['C_std'] = std
        print(df)
    
        # 在分组内根据C列进行正太分布标准化
        norm = grouped['C'].transform(lambda x: (x - x.mean()) / x.std())
        df['C_normal'] = norm
        print(df)
    6.2 filter

    通过 filter() 函数可以实现数据的筛选,该函数根据定义的条件过滤数据并返回一个新的数据集

    import pandas as pd
    
    # 创建一个示例 DataFrame
        data = {
            'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
            'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
            'C': [1, 2, 3, 4, 5, 6, 7, 8],
            'D': [10, 20, 30, 40, 50, 60, 70, 80]
        }
        df = pd.DataFrame(data)
    
    # 按列 'A' 分组,并过滤掉列 'C' 的平均值小于 4 的组
    filtered = df.groupby('A').filter(lambda x: x['C'].mean() >= 4)
    
    print(filtered)

    7、合并

    merge 函数用于将两个 DataFrame 对象根据一个或多个键进行合并,类似于 SQL 中的 JOIN 操作。这个方法非常适合用来基于某些共同字段将不同数据源的数据组合在一起,最后拼接成一个新的 DataFrame 数据表。

    函数:

    pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

    参数

  • left:左侧的 DataFrame 对象。

  • right:右侧的 DataFrame 对象。

  • how:合并方式,可以是 'inner'、'outer'、'left' 或 'right'。默认为 'inner'。

  • 'inner':内连接,返回两个 DataFrame 共有的键。

  • 'outer':外连接,返回两个 DataFrame 的所有键。

  • 'left':左连接,返回左侧 DataFrame 的所有键,以及右侧 DataFrame 匹配的键。

  • 'right':右连接,返回右侧 DataFrame 的所有键,以及左侧 DataFrame 匹配的键。

  • on:用于连接的列名。如果未指定,则使用两个 DataFrame 中相同的列名。

  • left_on 和 right_on:分别指定左侧和右侧 DataFrame 的连接列名。

  • left_index 和 right_index:布尔值,指定是否使用索引作为连接键。

  • sort:布尔值,指定是否在合并后对结果进行排序。

  • suffixes:一个元组,指定当列名冲突时,右侧和左侧 DataFrame 的后缀。

  • copy:布尔值,指定是否返回一个新的 DataFrame。如果为 False,则可能修改原始 DataFrame。

  • indicator:布尔值,如果为 True,则在结果中添加一个名为 __merge 的列,指示每行是如何合并的。

  • validate:验证合并是否符合特定的模式。

  • 案例1:内连接

    import pandas as pd
    
    # 创建两个示例 DataFrame
    left = pd.DataFrame({
        'key': ['K0', 'K1', 'K2', 'K3'],
        'A': ['A0', 'A1', 'A2', 'A3'],
        'B': ['B0', 'B1', 'B2', 'B3']
    })
    
    right = pd.DataFrame({
        'key': ['K0', 'K1', 'K2', 'K4'],
        'C': ['C0', 'C1', 'C2', 'C3'],
        'D': ['D0', 'D1', 'D2', 'D3']
    })
    
    # 内连接
    result = pd.merge(left, right, on='key')
    
    print(result)
    
    #输出:K3、K4被忽略
      key   A   B   C   D
    0  K0  A0  B0  C0  D0
    1  K1  A1  B1  C1  D1
    2  K2  A2  B2  C2  D2

    案例2:左连接

    import pandas as pd
    
    # 创建两个示例 DataFrame
    left = pd.DataFrame({
        'key': ['K0', 'K1', 'K2', 'K3'],
        'A': ['A0', 'A1', 'A2', 'A3'],
        'B': ['B0', 'B1', 'B2', 'B3']
    })
    
    right = pd.DataFrame({
        'key': ['K0', 'K1', 'K2', 'K4'],
        'C': ['C0', 'C1', 'C2', 'C3'],
        'D': ['D0', 'D1', 'D2', 'D3']
    })
    
    # 左连接,以左侧表为准
    result = pd.merge(left, right, on='key', how='left')
    
    print(result)
    # 输出:
      key   A   B    C    D
    0  K0  A0  B0   C0   D0
    1  K1  A1  B1   C1   D1
    2  K2  A2  B2   C2   D2
    3  K3  A3  B3  NaN  NaN

    8、随机抽样

    语法

    DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

    参数

  • n:要抽取的行数

  • frac:抽取的比例,比如 frac=0.5,代表抽取总体数据的50%

  • replace:布尔值参数,表示是否以有放回抽样的方式进行选择,默认为 False,取出数据后不再放回

  • weights:可选参数,代表每个样本的权重值,参数值是字符串或者数组

  • random_state:可选参数,控制随机状态,默认为 None,表示随机数据不会重复;若为 1 表示会取得重复数据

  • axis:表示在哪个方向上抽取数据(axis=1 表示列/axis=0 表示行)

  • 案例:  

    import pandas as pd  
    
    def sample_test():
        df = pd.DataFrame({
            "company": ['百度', '阿里', '腾讯'],
            "salary": [43000, 24000, 40000],
            "age": [25, 35, 49]
        })
        print('随机选择两行:')
        print(df.sample(n=2, axis=0))
        print('随机选择一列:')
        print(df.sample(n=1, axis=1))
        print('总体的50%:')
        print(df.sample(axis=0, frac=0.5))

    9、空值处理

    9.1 检测空值

    isnull()用于检测 DataFrame 或 Series 中的空值,返回一个布尔值的 DataFrame 或 Series。

    notnull()用于检测 DataFrame 或 Series 中的非空值,返回一个布尔值的 DataFrame 或 Series。

    案例

    import pandas as pd
    import numpy as np
    
    # 创建一个包含空值的示例 DataFrame
    data = {
        'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, np.nan, 8],
        'C': [9, 10, 11, 12]
    }
    df = pd.DataFrame(data)
    
    # 检测空值
    is_null = df.isnull()
    print(is_null)
    
    # 检测非空值
    not_null = df.notnull()
    print(not_null)
    9.2 填充空值

    fillna() 方法用于填充 DataFrame 或 Series 中的空值。

    案例

    # 创建一个包含空值的示例 DataFrame
    data = {
        'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, np.nan, 8],
        'C': [9, 10, 11, 12]
    }
    df = pd.DataFrame(data)
    
    # 用 0 填充空值
    df_filled = df.fillna(0)
    
    print(df_filled)
    9.3 删除空值

    dropna() 方法用于删除 DataFrame 或 Series 中的空值所在行

    案例

    # 创建一个包含空值的示例 DataFrame
    data = {
        'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, np.nan, 8],
        'C': [9, 10, 11, 12]
    }
    df = pd.DataFrame(data)
    
    # 删除包含空值的行
    df_dropped = df.dropna()
    print(df_dropped)
    #输出:
         A    B   C
    0  1.0  5.0   9
    3  4.0  8.0  12
    
    # 删除包含空值的列
    df_dropped = df.dropna(axis=1)
    print(df_dropped)
    #输出:
        C
    0   9
    1  10
    2  11
    3  12

    二、读取CSV文件

    CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本);

    CSV 是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。

    就是平常使用的excel文件表格之间是使用英文逗号分隔

    1、to_csv()

    to_csv() 方法将 DataFrame 存储为 csv 文件

    案例:

    import pandas as pd
    
    # 创建一个简单的 DataFrame
    data = {
        'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']
    }
    df = pd.DataFrame(data)
    
    # 将 DataFrame 导出为 CSV 文件
    df.to_csv('output.csv', index=False)

    2、read_csv()

    read_csv() 表示从 CSV 文件中读取数据,并创建 DataFrame 对象。

    案例:

    import pandas as pd
    
    df = pd.read_csv('output.csv')
    print(df)

    注意:保存数据是使用的Dataframe对象调用to_csv,读取是使用的pandas库的read_csv方法

    三、绘图

    Pandas 在数据分析、数据可视化方面有着较为广泛的应用,Pandas 对 Matplotlib 绘图软件包的基础上单独封装了一个plot()接口,通过调用该接口可以实现常用的绘图操作;

    Pandas 之所以能够实现了数据可视化,主要利用了 Matplotlib 库的 plot() 方法,它对 plot() 方法做了简单的封装,因此您可以直接调用该接口;

    只用 pandas 绘制图片可能可以编译,但是不会显示图片,需要使用 matplotlib 库,调用 show() 方法显示图形。

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 创建一个示例 DataFrame
    data = {
        'A': [1, 2, 3, 4, 5],
        'B': [10, 20, 25, 30, 40]
    }
    df = pd.DataFrame(data)
    
    # 绘制折线图
    df.plot(kind='line')
    # 显示图表
    plt.show()
    
    # 绘制柱状图
    df.plot(kind='bar')
    # 显示图表
    plt.show()
    
    
    # 绘制直方图
    df['A'].plot(kind='hist')
    # 显示图表
    plt.show()
    
    # 绘制散点图
    df.plot(kind='scatter', x='A', y='B')
    # 显示图表
    plt.show()

    饼图

    # 创建一个示例 Series
    data = {
        'A': 10,
        'B': 20,
        'C': 30,
        'D': 40
    }
    series = pd.Series(data)
    # 绘制饼图
    series.plot(kind='pie', autopct='%1.1f%%')
    # 显示图表
    plt.show()

    作者:世界の風

    物联沃分享整理
    物联沃-IOTWORD物联网 » Pandas库在Python中的实际应用操作详解

    发表回复