![](/img/trans.png)
[英]How to replace type: pandas.core.frame.DataFrame with type: modin.pandas.dataframe.DataFrame
[英]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.