簡體   English   中英

如何將Modin Pandas數據框附加到其他數據框?

[英]How to append a Modin pandas dataframe to other?

我正在對每個文件大約6GB的大文件執行計算,並且遇到了Modin熊貓 ,我聽說它比熊貓要優化。

我需要分塊讀取CSV文件並對其進行計算,然后將其附加到大數據框,然后再次將大數據轉換為CSV文件。

對於Pandas來說,這是絕對可以的。 但是,即使是很小的文件,也要花費太多時間。 而且我什至無法想象6GB的文件。

但是,當我嘗試對modin pandas做同樣的事情時,它無法將數據框附加到要轉換為csv文件的大數據框。

任何人都可以提出任何替代方案或解決方案的建議。

Python - 3.6
Pandas - 0.24.2
Modin Pandas - 0.5.2

碼。

import modin.pandas as pd

def calculate_visit_prioritization(df):
    # calculations here
    return df

def get_all_data():
    big_df = pd.DataFrame()
    for df in pd.read_csv('./samp.csv', chunksize=50):
        big_df = big_df.append(calculate_visit_prioritization(df))
    big_df.to_csv('samps3.csv', index=False)

def main():
    get_all_data()

if __name__ == '__main__':
    main()

使用Modin熊貓附加數據幀時出錯。

UserWarning: DataFrame.append用於默認為熊貓實現的空DataFrame。

__init__文件“ /home/tony/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py”第289行引發TypeError(msg)

TypeError:無法連接類型為“”的對象; 僅pd.Series,pd.DataFrame和pd.Panel(不建議使用)objs有效

我已經看過此鏈接 ,據說熊貓的.append()函數是部分(P)在Modin中實現的。

Modin的USP是,熊貓和modin熊貓之間的唯一區別是import聲明。 要連接多個DataFrame,請使用單個pd.concat調用而不是N個append調用以提高性能。

df_list = []
for df in pd.read_csv('./samp.csv', chunksize=50):
    df_list.append(calculate_visit_prioritization(df))

big_df = pd.concat(df_list, ignore_index=True)
big_df.to_csv('samps3.csv', index=False)

這也應該適當地處理空的子DataFrame。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM