用 Pandas Python 旋转得到布尔值
Pivot with Pandas Python to get booleans
我有以下 csv:https://github.com/antonio1695/Python/blob/master/nearBPO/facturas.csv
我使用以下代码从中创建了一个数据框:
import pandas as pd
df = pd.read_csv("C:/Users/Antonio/Desktop/nearBPO/facturas.csv", encoding = "ISO-8859-1")
df_du = df.iloc[:,[0,5]]
dfv = df_du.groupby('UUID')['Desc'].apply(list)
df2 = dfv.reset_index()
*注意:我在本地获取 csv。
代码之后是这样的:
UUID Desc
0 0019A60D-78F8-E341-8D3E-9786201FE017 [TRANSPORTACION DE PASAJEROS]
1 003B8B8F-7017-E441-8C84-8C0EA577E29D [SERVICIO POR HORA]
2 00536BC1-1B10-4146-A59B-36613090EF10 [CONSUMO Y RENTA DE SALA DE JUNTAS]
3 005BBAEE-ABEC-E341-8CED-15DA22D11F65 [VERIFICACION HOLOGRAMA DOBLE CERO]
4 006C5F2E-CAE0-4498-9288-0241C1949D8A [C Meg XT Clas CH, Com Whop Q CH, C Meg XT Cla...
5 0075D1FC-996D-4784-9755-2F4598D16163 [Consumo]
我想制作一个数据框,其中 'Desc' 列的每个元素作为列,每个 UUID 作为行,如果 UUID 具有相应的 'Desc' 在里面。
我想要的例子:
UUID Transportacion de pasajeros Servicio por hora
0019A60D-78F8-E341-8D3E-9786201FE017 1 0
003B8B8F-7017-E441-8C84-8C0EA577E29D 0 1
我试图做的是一个 0 矩阵和一个 if 来生成 1。之后我会合并它并旋转它。但是,由于一些'Desc'是一样的,所以我不知道应该做多大。它似乎伴随着合并部分的许多其他缺陷。
您可以使用
pd.concat([df2['UUID'], df2['Desc'].str.join('___').str.get_dummies('___')], axis=1)
它returns是这样的:
Out:
UUID SERVICIO POR HORA \
0 0019A60D-78F8-E341-8D3E-9786201FE017 0
1 003B8B8F-7017-E441-8C84-8C0EA577E29D 1
TRANSPORTACION DE PASAJEROS
0 1
1 0
我有以下 csv:https://github.com/antonio1695/Python/blob/master/nearBPO/facturas.csv
我使用以下代码从中创建了一个数据框:
import pandas as pd
df = pd.read_csv("C:/Users/Antonio/Desktop/nearBPO/facturas.csv", encoding = "ISO-8859-1")
df_du = df.iloc[:,[0,5]]
dfv = df_du.groupby('UUID')['Desc'].apply(list)
df2 = dfv.reset_index()
*注意:我在本地获取 csv。
代码之后是这样的:
UUID Desc
0 0019A60D-78F8-E341-8D3E-9786201FE017 [TRANSPORTACION DE PASAJEROS]
1 003B8B8F-7017-E441-8C84-8C0EA577E29D [SERVICIO POR HORA]
2 00536BC1-1B10-4146-A59B-36613090EF10 [CONSUMO Y RENTA DE SALA DE JUNTAS]
3 005BBAEE-ABEC-E341-8CED-15DA22D11F65 [VERIFICACION HOLOGRAMA DOBLE CERO]
4 006C5F2E-CAE0-4498-9288-0241C1949D8A [C Meg XT Clas CH, Com Whop Q CH, C Meg XT Cla...
5 0075D1FC-996D-4784-9755-2F4598D16163 [Consumo]
我想制作一个数据框,其中 'Desc' 列的每个元素作为列,每个 UUID 作为行,如果 UUID 具有相应的 'Desc' 在里面。
我想要的例子:
UUID Transportacion de pasajeros Servicio por hora
0019A60D-78F8-E341-8D3E-9786201FE017 1 0
003B8B8F-7017-E441-8C84-8C0EA577E29D 0 1
我试图做的是一个 0 矩阵和一个 if 来生成 1。之后我会合并它并旋转它。但是,由于一些'Desc'是一样的,所以我不知道应该做多大。它似乎伴随着合并部分的许多其他缺陷。
您可以使用
pd.concat([df2['UUID'], df2['Desc'].str.join('___').str.get_dummies('___')], axis=1)
它returns是这样的:
Out:
UUID SERVICIO POR HORA \
0 0019A60D-78F8-E341-8D3E-9786201FE017 0
1 003B8B8F-7017-E441-8C84-8C0EA577E29D 1
TRANSPORTACION DE PASAJEROS
0 1
1 0