DataFrame.info(self, verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None) [source]
打印DataFrame的简要摘要。
此方法显示有关DataFrame的信息,包括索引dtype和列dtype,非空值和内存使用情况。
参数: | verbose : 是否打印完整的摘要。默认情况下,
遵循中的设置 。 buf : 可写缓冲区,默认为 将输出发送到哪里。默认情况下, 输出将打印到 请传递可写缓冲区。 max_cols : 何时从详细输出切换到截断输出。 如果 则使用截断的输出。默认情况下, 使用中的设置 memory_usage : 指定是否应显示 的总内存使用情况。默认情况下, 这遵循
内存使用情况以可读单位(以2为基数的表示形式) 显示。无需深入自省, 就可以根据列 假设值为相应的 使用深度内存自省, 将以计算资源为代价执行实际内存使用量计算。 null_counts : 布尔值,可选 是否显示非空计数。默认情况下, 仅当框架小于 和时显示 值为True始终显示计数,而值为False则不显示计数。 |
返回值: |
此方法打印 |
例子
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')