回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想用相同的ID向相同的文件室引用添加一个数字。因此,我的数据框有两列(“ID”和“文件室”)。我想根据单个ID在“房间”列中的出现情况为每个房间添加一个数字。下面是原始df和所需df</p>
<p>示例:ID34有3间卧室,所以我希望第一间是->;卧室1,第二层->;卧室2和第三间->;卧室3</p>
<p><strong>原始df:</strong></p>
<pre><code>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
</code></pre>
<p><strong>所需df:</strong></p>
<pre><code>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
</code></pre>
<p>试用代码:</p>
<pre><code>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')
</code></pre>