任务
工作中遇到的问题,记录一下。
这里,需要将pandas读取数据集时,如pd.read_csv()或pd.read_excel()等,使用df.info()可以查看数据信息,我们要将打印的内容保存下来,进行下一步的处理。由于df.info()自动打印在控制台,并不保存,所以这里需要考虑解决问题的办法。
解决方法
# 读取Excel文件
data = pd.read_excel(r'文件地址+文件名.xlsx')
# 获取数据列名,并保存为list
col = data.columns.tolist()
# 存储为字符串,创建一个StringIO,便于在内存中写入字符串
import io
buf = io.StringIO()
# 数据属性写入
data.info(buf=buf)
# 读取写到的数据,并转换成dataframe
re = buf.getvalue()
df = pd.DataFrame(re.split("\n"), columns=['info'])
# 根据保存字符串的格式,使用df.loc[]定位所要获取内容的位置
df_info = df.loc[3:len(df)-4, 'info'].str.split(n=1, expand=True).reset_index(drop=True)
# 创建一个新的属性list用于保存获取到的内容,我这里保存打印的最后一列内容
att = []
for i in df_info[1]:
att.append(i.split()[-1])