簡體   English   中英

大熊貓數據框管理

[英]Big pandas dataframe management

我需要你的幫助來管理一個 Pandas df(大約 3000 萬行)。 特別是,我需要從 df 中提取數據並創建一些具有特定形式的工作表(我將在 csv 中導出)。 在我的 df 中,我有 4 個變量(國家、合作伙伴、年份、產品),對於每個國家和產品,我需要一個 df 與合作伙伴(在列中)和年份(在行中)。 這些是我的變量:

country = "ITA"
years = [2017, 2018]
product = 3312
partners = ["FRA", "USA", "CHI"]

我必須提取的數據在 df 的“值”列中。 我制作了一個非常慢的代碼,它創建了一個包含我需要的數據框“工作表”:

sheet=pd.DataFrame({"Partners" : partners})      
    for n in years:
        association = []
        for i in partners:
            association.append(round(df.loc[(df['Reporter'] == country) & (df['Partner'] == i) & (df['Year'] == n) & (df['Product'] == product), 'Value'].sum()/10**6 , 3)) # data are in bln
        sheet[n] = association 

請幫助我使用優化的代碼來執行此操作。 非常感謝

.loc 運算符將非常快並且易於實現,特別是與您提出的循環相比:

sheet_subset = sheet.loc[(sheet['country']=="ITA") & (sheet['years'].isin([2017,2018])) & (sheet['product']==3312) & (sheet['partners'].isin(["FRA", "USA", "CHI"]))]

暫無
暫無

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

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