簡體   English   中英

在 pandas 中排序 csv 數據

[英]sorting csv data in pandas

我正在尋找您的建議,我有一個包含數據的 CSV 文件:

在此處輸入圖像描述

我正在嘗試在“關鍵字”列中查找所有唯一關鍵字並將它們添加到嵌套字典中,例如

data = { 
         "sony a5000": {"7/25/22": "422,484", "8/25/22":"405,284", "9/25/22": "402,210" ....,
         "regalo para hombre": {"7/25/22": "422,485", "8/25/22": "382,485", "9/25/22": "327,321" ....,

我已經使用 duplicated() 方法在列中查找所有重復的關鍵字並將它們添加到變量(res = df[df.duplicated('keyword')])但是,我無法設法將項目添加到 DICT ,我嘗試了循環但沒有結果。

你能給我一個線索,我應該在 pandas 中使用什么 function 或方法將數據轉換為字典。

樣本數據:

df = pd.DataFrame({
    
    "keyword": ["sony", "sony", "maroon", "maroon"],
    "searches": ["422,484", "422,485", "422,486", "422,487"],
    "date": ["7/5/22", "7/5/23", "7/5/24", "7/5/25"]
    
})

拆分數據

def extract_values(group):
    d = {}
    for index, row in group.iterrows():
        d[row["date"]] = row["searches"]
        
    return {row["keyword"] : d}
        

result = df.groupby("keyword").apply(lambda x: extract_values(x))
result.tolist()

樣品 output

[{'maroon': {'7/5/24': '422,486', '7/5/25': '422,487'}},
 {'sony': {'7/5/22': '422,484', '7/5/23': '422,485'}}]

您可以為此使用字典理解:

{g[0]:{k:v for k, v in zip(g[1].date, g[1].searches)} for g in df.groupby('keyword')}

輸入:

df = pd.DataFrame({"keyword": ["sony", "sony", "maroon", "maroon"], "searches": ["422,484", "422,485", "422,486", "422,487"], "date": ["7/5/22", "7/5/23", "7/5/24", "7/5/25"]})

Output:

{'maroon': {'7/5/24': '422,486', '7/5/25': '422,487'},
 'sony': {'7/5/22': '422,484', '7/5/23': '422,485'}}

暫無
暫無

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

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