繁体   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