Pandas 的内置、无索引、漂亮的列输出
Built-in, indexless, pretty-columns output with Pandas
在调试或研究 pandas 中的数据时,我经常发现自己编写这样的代码以获得格式良好的多列输出(没有索引):
dfs = dfs[dfs['some_id'] == the_id]
cols = [
'some_col',
'another_col',
'yet_another',
]
print("\t".join(cols))
for row in dfs[cols].values:
print("\t\t".join([str(val) for val in row]))
这很好用,但我想知道是否有一种内置方法可以使用 pandas 函数或直接查找语法来获取此类输出。示例输出:
some_col another_col yet_another
a b c
x y z
是的,您可以使用参数 index=False
调用 df.to_string
。
dfs = dfs[dfs['some_id'] == the_id]
cols = [
'some_col',
'another_col',
'yet_another',
]
print(dfs[cols].to_string(index=False))
MCVE:
print(df)
0 1
0 0.335232 -1.256177
1 -1.367855 0.746646
2 0.027753 -1.176076
3 0.230930 -0.679613
4 1.261967 0.570967
print(df.to_string(index=False, col_space=10))
0 1
0.335232 -1.256177
-1.367855 0.746646
0.027753 -1.176076
0.230930 -0.679613
1.261967 0.570967
在调试或研究 pandas 中的数据时,我经常发现自己编写这样的代码以获得格式良好的多列输出(没有索引):
dfs = dfs[dfs['some_id'] == the_id]
cols = [
'some_col',
'another_col',
'yet_another',
]
print("\t".join(cols))
for row in dfs[cols].values:
print("\t\t".join([str(val) for val in row]))
这很好用,但我想知道是否有一种内置方法可以使用 pandas 函数或直接查找语法来获取此类输出。示例输出:
some_col another_col yet_another
a b c
x y z
是的,您可以使用参数 index=False
调用 df.to_string
。
dfs = dfs[dfs['some_id'] == the_id]
cols = [
'some_col',
'another_col',
'yet_another',
]
print(dfs[cols].to_string(index=False))
MCVE:
print(df)
0 1
0 0.335232 -1.256177
1 -1.367855 0.746646
2 0.027753 -1.176076
3 0.230930 -0.679613
4 1.261967 0.570967
print(df.to_string(index=False, col_space=10))
0 1
0.335232 -1.256177
-1.367855 0.746646
0.027753 -1.176076
0.230930 -0.679613
1.261967 0.570967