如何打印CSV文件的所有列

0 投票
1 回答
59 浏览
提问于 2025-04-12 12:38

我在打印一个csv文件的所有列时遇到了一些问题。里面的数据排布得有点奇怪,不过这并不重要。

我一直在用pandas来查看数据csv文件中的趋势。我想把数据打印出来,同时用pandas把它图形化。当我尝试打印过滤后的变量,想要显示所有数据时,由于数据跨越了很多列,日期在最上面(我会附上代码和数据文件的截图,这样就不会太混淆),所以似乎无法打印出所有的数据。

我尝试了不同的方法,比如把它转换成list()函数,或者试着用.to_string.to_html来转换,但都没有成功。在附上的截图中,这是在使用.to_string之后的结果,但它一开始输出的是"<bound method DataFrame.to_html of",然后只打印了一些列的日期,但下面的数据却没有显示出来。

def region_check(region, startdate, enddate, house_type):  # region, startdate, enddate

df1 = df.loc[:, startdate:enddate]
df2 = df.loc[:, 'Region Code':'Rooms']
prop_filter = df["Property_Type"] == house_type

result = pd.concat([df2, df1], axis=1, join='inner').where(df2["Region"] == region).where(prop_filter) 
    
result = pd.DataFrame(result)

result.dropna(inplace=True)
print(result)  # This is where it prints the data as text. At the end of result is 
                 where I was adding .to_string/html
ave = df1.mean()
ave.plot()
plt.show()
return result

关于.to_html的问题的截图

仅打印数据时的问题的截图

数据文件的截图。

1 个回答

1

虽然可以通过设置pandas的选项来查看所有列,但打印出来的表格看起来不太好。因此,我建议使用tabulate这个包。

方法一:在开启pandas选项后打印所有列:

import pandas as pd
pd.set_option('display.max_columns', None)

print(result)

方法二:使用以下方法来美化打印的表格:

# !pip3 install tabulate
from tabulate import tabulate

print(tabulate(result, "keys", tablefmt="psql"))
# tablefmt options: "psql", "simple", "mixed_grid" ...

撰写回答