Python 的数据分析库 Pandas 中,DataFrame.info() 函数是一个非常有用的方法,它可以提供关于 DataFrame 的一个简洁、综合的摘要。这个摘要包括了 DataFrame 的索引、数据类型、非空值的数量以及内存使用情况等重要信息。本文主要介绍一下Pandas中pandas.DataFrame.info方法的使用。

DataFrame.info(self, verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None)      [source]

打印DataFrame的简要摘要。

此方法显示有关DataFrame的信息,包括索引dtype和列dtype,非空值和内存使用情况。

参数:

verbose : bool,可选

是否打印完整的摘要。默认情况下,

pandas.options.display.max_info_columns

遵循中的设置 。

buf : 可写缓冲区,默认为sys.stdout

将输出发送到哪里。默认情况下,

输出将打印到sys.stdout。如果需要进一步处理输出,

请传递可写缓冲区。

max_cols : int,可选

何时从详细输出切换到截断输出。

如果DataFrame的列数超过max_cols列,

则使用截断的输出。默认情况下,

使用中的设置

 pandas.options.display.max_info_columns

memory_usage : boolstr,可选

指定是否应显示DataFrame元素(包括索引)

的总内存使用情况。默认情况下,

这遵循pandas.options.display.memory_usage设置。

True始终显示内存使用情况。

False永远不会显示内存使用情况。

‘deep’ 的值等效于“真正的内省”。

内存使用情况以可读单位(以2为基数的表示形式)

显示。无需深入自省,

就可以根据列dtype和行数进行内存估计,

假设值为相应的dtype消耗相同的内存量。

使用深度内存自省,

将以计算资源为代价执行实际内存使用量计算。

null_counts : 布尔值,可选

是否显示非空计数。默认情况下,

仅当框架小于 pandas.options.display.max_info_rows

和时显示 pandas.options.display.max_info_columns

值为True始终显示计数,而值为False则不显示计数。

返回值:

None

此方法打印DataFrame的摘要并返回None

例子

1)获取 DataFrame 的信息

import pandas as pd

# 定义示例数据
int_values = [1, 2, 3, 4, 5]
text_values = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']
float_values = [0.0, 0.25, 0.5, 0.75, 1.0]

# 创建 DataFrame
df = pd.DataFrame({
    "int_col": int_values, 
    "text_col": text_values,
    "float_col": float_values
})

# 显示 DataFrame
print(df)

# 使用 info() 方法查看 DataFrame 的信息
df.info()

2)打印所有列的信息

import pandas as pd

# 创建示例 DataFrame
data = {'int_col': [1, 2, 3, 4, 5],
        'text_col': ['apple', 'banana', 
        'cherry', 'date', 'elderberry'],
        'float_col': [1.1, 2.2, 3.3,
        4.4, 5.5]}

df = pd.DataFrame(data)

# 调用 info() 方法,输出详细信息
df.info(verbose=True)

3)显示列数及其dtype的摘要,但不显示每列的信息

import pandas as pd

# 创建示例 DataFrame
data = {
    'int_col': [1, 2, 3, 4, 5],
    'float_col': [1.1, 2.2, 3.3, 4.4, 5.5],
    'str_col': ['A', 'B', 'C', 'D', 'E']
}

df = pd.DataFrame(data)

# 使用 info() 方法,verbose=False
df.info(verbose=False)

4)将DataFrame.info的输出通过管道传递到缓冲区

import pandas as pd
import io

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, 27, 22, 32],
        'Salary': [50000, 60000, 55000, 80000]}

df = pd.DataFrame(data)

# 创建一个 StringIO 缓冲区
buffer = io.StringIO()

# 使用 df.info() 并将输出写入到缓冲区
df.info(buf=buffer)

# 获取缓冲区的内容
s = buffer.getvalue()

# 将内容写入到文本文件
with open("df_info.txt", "w", encoding="utf-8") as f:
    f.write(s)

# 如果需要查看文件内容,可以打开 df_info.txt 文件,或输出内容
print(s)

5)该memory_usage参数允许深刻反省模式,为大DataFrames和微调内存优化特别有用

import numpy as np
import pandas as pd

# 生成包含 10^6 个随机字符串的 NumPy 数组
random_strings_array = np.random.choice(['a', 'b', 'c'], 10 ** 6)

# 创建包含三个列的 DataFrame,每列包含 10^6 个随机字符串
df = pd.DataFrame({
    'column_1': np.random.choice(['a', 'b', 'c'], 10 ** 6),
    'column_2': np.random.choice(['a', 'b', 'c'], 10 ** 6),
    'column_3': np.random.choice(['a', 'b', 'c'], 10 ** 6)
})

# 使用 info() 方法查看 DataFrame 的基本信息
print("Basic info:")
df.info()

# 使用 info(memory_usage='deep') 查看深度内存使用情况
print("\nDetailed memory usage:")
df.info(memory_usage='deep')

推荐文档

相关文档

大家感兴趣的内容

随机列表