【问题标题】:Is there a way to view my data frame in pandas without reading in the file every time?有没有办法在熊猫中查看我的数据框而无需每次都读取文件?
【发布时间】:2022-11-04 00:03:32
【问题描述】:

这是我的代码:

import pandas as pd

df = pd.read_parquet("file.parqet", engine='pyarrow')
df_set_index = df.set_index('column1')


row_count = df.shape[0]  
column_count = df.shape[1]  

print(df_set_index)
print(row_count)
print(column_count)

每次我想计算行数、列数等时,我可以在不读取镶木地板文件的情况下运行它吗?读入文件需要一段时间,因为它很大,我已经读过一次,但我不知道怎么读。

【问题讨论】:

  • 一旦你做了df = pd.read_parquet("file.parqet", engine='pyarrow'),那么数据帧就在内存中,任何随后对df的调用都不会打扰文件。您可以读取该文件,然后将其删除,并且仍然可以使用数据框。

标签: python pandas dataframe parquet


【解决方案1】:

pd.read_parquet 读取存储在磁盘上的文件并将其存储在缓存中,这对于大量数据来说自然很慢。因此,您可以设计一个解决方案,例如:

1.) column_count

 pd.read_parquet("file.parqet", engine='pyarrow', nrows=1).shape[1] 

-> 这将为您提供列数,同时仅读取 1 行
-> .shape 返回一个带有值(# 行,# 列)的元组,所以只需抓住第二项作为列数,如上所示。

2.) 行数

cols_want = ['colmn1'] # put whatever column names you want here
row_count = pd.read_parquet("file.parqet", engine='pyarrow', usecols=cols_want).shape[0]

-> 这将为您提供“column1”列中的行数,而无需读取所有其他列(这是您的解决方案需要一段时间的原因)。

3.) df.set_index(...) 并不意味着存储在变量中,所以我不确定你想在那里做什么。如果您想查看列中的内容,只需使用上面的 #2 并删除“.shape[0]”调用

【讨论】:

    猜你喜欢
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2020-09-23
    • 2019-03-14
    • 1970-01-01
    • 2019-06-05
    相关资源
    最近更新 更多