簡體   English   中英

如何根據python中前一列數據中的行生成n個列,我對python、pandas數據框很陌生

[英]how to generate n number of columns based on rows in previous column data in python, I am very new to python, pandas data frames

我有如下的 csv 文件數據

ModelNumber  Variables
----------   ----------
 208          TotalTerms 
 208          Children 
 208          Property
 208          isMarried 
 207          HasLoan
 207          Children

如何生成以下輸出

ModelNumber  Variable1   Variable2   Variable3   Variable4
----------   ----------  ----------  ----------  ----------
208         TotalTerms   Children    Property    isMarried
207         HasLoan      Children

我認為對您的問題更好的情況是使用 pivot_table 並將每個變量定義為列而不是變量 1、變量 2 等......並且只需對每個型號中的每個變量使用 1/0(真/假):

df_1 = pd.DataFrame({'ModelNumber':[208,208,208,208,207,207],
                    'Variables':['TotalTerms','Children','Property','isMarried','HasLoan','Children']})
df_output = pd.pivot_table(df_1,index='ModelNumber',columns='Variables',aggfunc=len)
print(df_output)

輸出:

Variables    Children  HasLoan  Property  TotalTerms  isMarried
ModelNumber                                                    
207                 1        1         0           0          0
208                 1        0         1           1          1

我會寫步驟,這樣你會更容易。

第 1 步:讀取 csv 文件

第 2 步:在讀取 dict 中的數據時(我們希望將 ModelNumber 等數據作為鍵,將 Variables 作為數組元素),如果變量值在 dict 中,則將其值附加到數組中,如果沒有,則添加其以空數組作為值的字典的鍵,然后將此變量添加到數組中。

基於您的數據的示例數據表示:

{
    "208": ["TotalTerms", "Children", "Property", "isMarried"],
    "207": ["HasLoan", "Children"]
}

第 3 步:將此數據導出回 csv

暫無
暫無

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

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