我想用相同的ID向相同的文件室引用添加一个数字。因此,我的数据框有两列(“ID”和“文件室”)。我想根据单个ID在“房间”列中的出现情况为每个房间添加一个数字。下面是原始df和所需df
示例:ID34有3间卧室,所以我希望第一间是->;卧室1,第二层->;卧室2和第三间->;卧室3
原始df:
ID Room
34 Livingroom
34 Bedroom
34 Kitchen
34 Bedroom
34 Bedroom
34 Storage
50 Kitchen
50 Kitchen
89 Livingroom
89 Bedroom
89 Bedroom
98 Livingroom
所需df:
ID Room
34 Livingroom_1
34 Bedroom_1
34 Kitchen_1
34 Bedroom_2
34 Bedroom_3
34 Storage_1
50 Kitchen_1
50 Kitchen_2
89 Livingroom_1
89 Bedroom_1
89 Bedroom_2
98 Livingroom_1
试用代码:
import pandas as pd
import numpy as np
data = pd.DataFrame({"ID": [34,34,34,34,34,34,50,50,89,89,89,98],
"Room": ['Livingroom','Bedroom','Kitchen','Bedroom','Bedroom','Storage','Kitchen','Kitchen','Livingroom','Bedroom','Bedroom','Livingroom']})
df = pd.DataFrame(columns=['ID'])
for i in range(df['Room'].nunique()):
df_new = (df[df['Room'] == ])
df_new.columns = ['ID', 'Room' + str(i)]
df_result = df_result.merge(df_new, on='ID', how='outer')
https://stackoverflow.com/a/59951701/3756587我是从这里抄来的
让我们尝试将房间和按房间和ID分组的df的cumcount连接起来,如下所示
这里有一些代码可以为您做到这一点。我基本上把它分为三个步骤
以下是您的输出:
相关问题 更多 >
编程相关推荐