如何将不同列表的Pandas列拆分为多个列,并将其设置为列名



我有以下Pandas数据帧。

data = pd.DataFrame(
{
"client": ["first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh"],
"Lifetime": [24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24],
"Tokens": [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
"path": ["kyc", "co", "5dimes", "la", "la", "ku", "pv", "ipv", "lv", "7d", "222"],
"requiredFields": [
['address', 'city', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn', 'state', 'zip'],
['address', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn', 'state', 'zip'],
['address', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'state', 'zip'],
['city', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn', 'state', 'zip'],
['city', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn', 'zip'],
['city', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn'],
['city', 'country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'state', 'zip'],
['country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn', 'state', 'zip'],
['country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'ssn', 'zip'],
['country', 'dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName', 'state', 'zip'],
['dobDay', 'dobMonth', 'dobYear', 'firstName', 'lastName']
],
"userIdRequired": [True, True, True, True, True, True, True, True, True, True, True],
}

)我想做的是让列表中的每个项目都进入一个单独的列。结果是作为列名的列表项及其值"0";y";。像这样的东西。

径><1th>userIdRequired/th>城市>td style="ext-align:left;">kyc[地址、城市、国家/地区、dobDay、dobMonth、dobYear、firstName、lastName、ssn、state、zip]rue align:right;">yyo[地址、城市、国家/地区、dobDay、dobMonth、dobYear、firstName、lastName、ssn、state、zip]>次ya>td style="ext-align:center;">[城市,国家,dobDay,dobMonth,dobYear,firstName,lastName,ssn,state,zip]>td style="text align=right;">yya[城市、国家、dobDay、dobMonth、dobYear、firstName、lastName、ssn、zip]="text align=right;">yu>td style="ext-align:center;">[城市、国家、dobDay、dobMonth、dobYear、firstName、lastName、ssn]<1d>yyv><1d>真<2d>无"text-align:right;">yypv[国家/地区,dobDay,dobMonth,dobYear,firstName,lastName,ssn,state,zip]style="text align=right;">无yv>td style="ext-align:center;">[国家/地区,dobDay,dobMonth,dobYear,firstName,lastName,ssn,zip]<1d>无yd[国家/地区,dobDay,dobMonth,dobYear,firstName,lastName,state,zip]>y22[dobDay,dobMonth,dobYear,firstName,lastName]无
客户端生存期令牌requiredFields国家dobDaydobMonthstatezip
first2430y
第二个2430无right;">y
第三次2430[地址,城市,国家,dobDay,dobMonth,dobYear,firstName,lastName,state,zip]
第四个2430True
第五个2430y
第六个2430
第七个2430[城市,国家,dobDay,dobMonth,dobYear,firstName,lastName,state,zip]
第八个2430
第九个2430
第十个2430
第十一个2430

您可以进行

out = data.join(data['requiredFields'].str[0].str.get_dummies(sep=', ').replace({0: None, 1: 'y'}))
print(out)
client  Lifetime  Tokens    path  
0   first        24      30     kyc
1  second        24      30      co
2   third        24      30  5dimes
3  fourth        24      30      la
requiredFields  userIdRequired  
0        [country, dobDay, dobMonth, dobYear, firstName]            True
1          [address, country, dobDay, dobMonth, dobYear]            True
2  [city, country, dobDay, dobMonth, dobYear, firstName]            True
3       [dobDay, dobMonth, dobYear, firstName, lastName]            True
address  city country dobDay dobMonth dobYear firstName lastName
0    None  None       y      y        y       y         y     None
1       y  None       y      y        y       y      None     None
2    None     y       y      y        y       y         y     None
3    None  None    None      y        y       y         y        y

最新更新