Pandas 的 DataFrame.info(~)
方法输出 DataFrame 的简要摘要,其中包括数据类型和内存消耗等信息。
参数
1.verbose
| boolean
| optional
是否输出详细摘要。默认值取决于您的机器。
2. buf
| writable buffer
| optional
输出的位置。默认情况下,buf=sys.stdout
(标准输出)。
3. max_cols
| int
| optional
要输出的最大列数。如果源 DataFrame 中的列数超过此值,则某些列将被截断。默认值取决于您的机器。
4. memory_usage
| string
或 boolean
| optional
是否显示每列的内存使用情况:
值 |
说明 |
---|---|
|
显示内存使用情况。对于包含对象类型(例如字符串)的DataFrames,内存使用情况将不准确。这是因为该方法对对象类型消耗的内存进行粗略估计。 |
|
不显示内存使用情况。 |
|
执行一些繁重的工作来计算对象类型的实际内存使用情况,并显示内存使用情况。 |
默认值取决于您的机器。
5. null_counts
| boolean
| optional
是否显示每列中非空值的数量。同样,默认值取决于您的机器。
返回值
没有返回任何内容,因为我们在这里所做的只是打印 DataFrame 的摘要。
例子
考虑以下 DataFrame :
df = pd.DataFrame({"A":[3,4],"B":[5.0,6.0],"C":[True,False],"D":["K","KK"]})
df
A B C D
0 3 5.0 True K
1 4 6.0 False KK
基本用法
不带任何参数调用info()
:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 4 columns):
A 2 non-null int64
B 2 non-null float64
C 2 non-null bool
D 2 non-null object
dtypes: bool(1), float64(1), int64(1), object(1)
memory usage: 178.0+ bytes
在这里,我的机器有以下默认选项:
-
verbose=True
-
memory_usage=True
-
null_counts=True
设置 verbose=False
如果您不需要每列的信息,请像这样设置verbose=False
:
df.info(verbose=False)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Columns: 4 entries, A to D
dtypes: bool(1), float64(1), int64(1), object(1)
memory usage: 178.0+ bytes
写入外部文件
我们可以使用 buf
参数将输出写入外部文件,而不是在屏幕上显示输出。
import io
buffer = io.StringIO()
df.info(buf=buffer)
str_summary = buffer.getvalue()
with open("df_summary.txt", "w") as file:
file.write(str_summary)
这将在与 Python 脚本相同的目录中创建一个名为 "df_summary.txt"
的文件。该文件的内容与您在屏幕上看到的内容相同。
设置memory_usage=深
由于我们的 DataFrame 包含一列数据类型对象(列 D
),因此 memory_usage=True
返回的值将为 off:
df.info()
<class 'pandas.core.frame.DataFrame'>
...
memory usage: 178.0+ bytes
要更准确地表示 DataFrame 消耗的内存,请设置 memory_usage="deep"
:
df.info(memory_usage="deep")
<class 'pandas.core.frame.DataFrame'>
...
memory usage: 287.0 bytes
我们看到DataFrame 占用了287
字节,因此我们相差了近100
字节。
相关用法
- Python Pandas DataFrame infer_objects方法用法及代码示例
- Python Pandas DataFrame insert方法用法及代码示例
- Python PySpark DataFrame intersect方法用法及代码示例
- Python Pandas DataFrame index属性用法及代码示例
- Python PySpark DataFrame intersectAll方法用法及代码示例
- Python Pandas DataFrame interpolate方法用法及代码示例
- Python Pandas DataFrame items方法用法及代码示例
- Python Pandas DataFrame isin方法用法及代码示例
- Python Pandas DataFrame idxmin方法用法及代码示例
- Python Pandas DataFrame iloc属性用法及代码示例
- Python Pandas DataFrame idxmax方法用法及代码示例
- Python Pandas DataFrame iteritems方法用法及代码示例
- Python Pandas DataFrame isna方法用法及代码示例
- Python Pandas DataFrame iat属性用法及代码示例
- Python Pandas DataFrame itertuples方法用法及代码示例
- Python Pandas DataFrame iterrows方法用法及代码示例
- Python Pandas DataFrame isnull方法用法及代码示例
- Python Pandas DataFrame empty属性用法及代码示例
- Python Pandas DataFrame pop方法用法及代码示例
- Python Pandas DataFrame nsmallest方法用法及代码示例
- Python Pandas DataFrame sample方法用法及代码示例
- Python Pandas DataFrame max方法用法及代码示例
- Python Pandas DataFrame swaplevel方法用法及代码示例
- Python Pandas DataFrame agg方法用法及代码示例
- Python Pandas DataFrame copy方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | info method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。