loa*_*box 8 python logging dataframe pandas
import logging
import pandas as pd
logger = logging.getLogger('train')
logger.setLevel(logging.DEBUG)
# Data
data = {'Name': ['Tom', 'nick', 'krish', 'jack'], 'Age': [20, 21, 19, 18]}
# Create DataFrame
df = pd.DataFrame(data)
logger.info(type(df))
logger.info(df.info())
.
.
.
<other_processes>
.
Run Code Online (Sandbox Code Playgroud)
上面的代码输出:
<class 'pandas.core.frame.DataFrame'>
None
.
.
.
Run Code Online (Sandbox Code Playgroud)
在日志的末尾(在所有其他进程之后),它还输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
Name 4 non-null object
Age 4 non-null int64
dtypes: int64(1), object(1)
memory usage: 144.0+ bytes
Run Code Online (Sandbox Code Playgroud)
None当我尝试记录 df.info() 时,为什么会打印它?如何在日志中的预期位置获取 df.info()?
jez*_*ael 10
将文本的缓冲区参数更改DataFrame.info为:StringIO.getvalue()
from io import StringIO
buf = StringIO()
df.info(buf=buf)
logger.info(type(df))
logger.info(buf.getvalue())
Run Code Online (Sandbox Code Playgroud)