我想将来自几个数据帧的dataframe.info中的信息组合到一个要导出的表中。
我认为最好的方法是将df1.info拉入一个数组然后进行一些切割,这样只剩下列和计数信息。
以下是我想在代码中做的事情:
import pandas as pd
files=["file1", "file2"]
for filename in files:
df= pd.read_csv(filename)
info=df.info()
*convert info to info[]*
*cut first 3 rows and last 2 rows*
output=output.extend(info)
如果有什么不清楚,请告诉我。谢谢!
答案 0 :(得分:0)
由于df.info()
打印到stdout
,您可以通过暂时将IO重定向到StringIO
对象来收集它:
import contextlib
import io
def get_info_middle(df):
fobj = io.StringIO()
with contextlib.redirect_stdout(fobj) as stdout:
df.info()
fobj.seek(0)
return '\n'.join(fobj.read().splitlines()[3:-2])
In [1]: df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
In [2]: df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
a 3 non-null int64
b 3 non-null int64
dtypes: int64(2)
memory usage: 128.0 bytes
In [3]: print(get_info_middle(df))
a 3 non-null int64
b 3 non-null int64