添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近在学数据分析,中英文混合的DataFrame表格会出现print()打印无法对齐的情况,导致输出的结果都没有对齐,十分不美观,也影响直观的分析。下面介绍两种解决方案,总有一款适合你:

准备工作:为演示方便,通过导入excel的方式建立名为’stu’, ‘stu2’ 的两个DataFrame格式对象

import pandas as pd
stu = pd.read_excel('Data\studentsInfo.xlsx','Group1',index_col=0)
stu.dropna(inplace=True)
stu2 = pd.read_excel('Data\studentsInfo.xlsx','Group1',index_col=0)
 

1.适用于纯文本输出print()函数的设置方法

若在IDLE等纯文本输出的环境下,使用display()函数或print()函数都只能输出纯文本形式的表格,如下:

在这里插入图片描述
由于中英文混合的关系导致列没有对齐

通过pd.set_option进行设置,代码如下:

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.width', 180) # 设置打印宽度(**重要**)
print(stu)

2.适用于JupyterNotebook的格式化的表格输出

若在JupyterNotebook中直接输出DataFrame格式,则是有线框的HTML格式的表格
代码如下:(以下代码均是JupyterNotebook的cell中运行的)

性别年龄身高体重省份成绩月生活费课程兴趣案例教学
序号
2male22.018071.0GuangXi77.01300.034
4male20.017772.0LiaoNing79.0900.044
6male20.017975.0YunNan92.0950.055
7female21.016653.0LiaoNing80.01200.045
8female20.016247.0AnHui78.01000.044
9female20.016247.0AnHui78.01000.044
10male19.016976.0HeiLongJiang88.01100.055

但是这种方式无法同时在一个cell中显示两个表格,只显示最后一个表格
代码如下:

性别年龄身高体重省份成绩月生活费课程兴趣案例教学
序号
1male20.017070.0LiaoNingNaN800.054
2male22.018071.0GuangXi77.01300.034
3maleNaN18062.0FuJian57.01000.024
4male20.017772.0LiaoNing79.0900.044
5male20.0172NaNShanDong91.0NaN55
6male20.017975.0YunNan92.0950.055
7female21.016653.0LiaoNing80.01200.045
8female20.016247.0AnHui78.01000.044
9female20.016247.0AnHui78.01000.044
10male19.016976.0HeiLongJiang88.01100.055

为了在一个cell 输出多个表格,可以使用IPython.display,代码如下:

from IPython.display import display
display(stu)
display(stu2)
 
性别年龄身高体重省份成绩月生活费课程兴趣案例教学
序号
2male22.018071.0GuangXi77.01300.034
4male20.017772.0LiaoNing79.0900.044
6male20.017975.0YunNan92.0950.055
7female21.016653.0LiaoNing80.01200.045
8female20.016247.0AnHui78.01000.044
9female20.016247.0AnHui78.01000.044
10male19.016976.0HeiLongJiang88.01100.055
性别年龄身高体重省份成绩月生活费课程兴趣案例教学
序号
1male20.017070.0LiaoNingNaN800.054
2male22.018071.0GuangXi77.01300.034
3maleNaN18062.0FuJian57.01000.024
4male20.017772.0LiaoNing79.0900.044
5male20.0172NaNShanDong91.0NaN55
6male20.017975.0YunNan92.0950.055
7female21.016653.0LiaoNing80.01200.045
8female20.016247.0AnHui78.01000.044
9female20.016247.0AnHui78.01000.044
10male19.016976.0HeiLongJiang88.01100.055

觉得有用的话,不要吝惜评论点赞分享哦,希望大家多多包涵,有任何问题欢迎指正、讨论。

data=[{name:Amay,age:20,result:80}, {name:Tom,age:32,result:90}] df=pd.DataFrame(data,columns=['name','age','result']) print(df) datafrma如下,现在要给其添加上表格框线。利用texttable。 tb=Texttable() tb.set_cols_align(['l','r','r']) tb.set_cols_dtype(['t','i','i' a = 5 , b = 5.2,c = “123456789” 最普通的右对齐:print(“=”%a) 输出 5(详情:5前面两个空格) print(“.3f”%b) 输出 5.200(详情:10代表整个输出占10个空间,小数点空间也算,3代表小数点后有三位,若不够则补上0) print(“%.3f”%b) 输出5.200(详情:代表小数点后面占三位,不够则用0补齐) 字符串的情况: 与数字一样,只不过用%s来代替%d,%f print(“%.3s”%c) 输出123 print(“.3s”%c) 输出 123(详情:1前面有7个空格) 左对齐的情况,只需pri
pandas显示对于字符宽度的控制默认是英文,当DataFrame的列名含有中文时,pandas就无法准确的控制列宽,从而导致列名和列没有对齐;对此,我们只要修改下pandas显示的默认设置即可,将两项设置都设为True即可,具体如下: pd.set_option('display.unicode.ambiguous_as_wide', True) pd.set_option('display.unicode.east_asian_width', True) # Pandas 可以根据索引实现数据自动对齐,索引不重合的部分被置为NaN df1 = pd.DataFrame(np.random.randint(low=1, high=10, size=(3,4)), columns=['a','b','c','d']) df2 = pd.DataFrame(np.random.randint(low=1, high=10, size=(4,5)), columns=['a','b',
m_pred_survived.to_csv(clasified.csv,index=False) 以上这篇Python DataFrame 设置输出不显示index(索引)值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:PythonDataFrame的某一列作为index的方法pandasDataFrame的列变成行索引的方法pythonpandas.DataFrame的简单操作方法(创建、索引、增添与删除)Py >>> import pandas as pd >>> dict1 = {'col1':[1,2,5,7],'col2':['a','b','c','d']} >>> df = pd.DataFrame(dict1) col1 col2 0 1 a 1 2 b 2 5 c 3 7 d 2. 从列表创建Dataframe (先把列表转化为字典,再把字典转化为DataFrame) >>> lista = [1,2,5,7] >>> listb = ['a','b','c','d'] >>> df = pd.Data
你可以使用 pandas.read_sql_query() 方法从 MySQL 数据库中读取表格,然后使用 pandas.DataFrame.to_string() 方法将表格转换为字符串,并使用 align 参数来控制列的对齐方式。具体实现步骤如下: 1. 导入 pandas 和 MySQLdb 模块: ```python import pandas as pd import MySQLdb 2. 连接 MySQL 数据库并执行查询: ```python conn = MySQLdb.connect(host='localhost', user='root', password='123456', db='test', charset='utf8') sql = 'SELECT * FROM my_table' df = pd.read_sql_query(sql, conn) 3. 将 DataFrame 转换为字符串并对齐输出: ```python print(df.to_string(index=False, header=True, align='left')) 其中,参数 index=False 表示不输出行索引,header=True 表示输出列名,align='left' 表示左对齐。 注意:在实际使用中,还需要根据具体情况调整输出格式、列宽等参数,以达到最佳的输出效果。