Python 数据转换
Python Data Transformation
我有一个包含两列的数据集
如何使用Python转换成如下格式?
您可以在 Name
、aggregate
Sr Number
上 groupby
作为列表,然后在 apply
pd.Series
上创建行。
df = pd.DataFrame({'Sr Number':np.arange(1,12),'Name':['A']*3+['B']*2+['C']*4+['D']*2}).groupby('Name')['Sr Number'].agg(list).reset_index()
df['Instance'] = df.index + 1
df[[f'Row ID {i}' for i in range(1,len(df)+1)]] = df['Sr Number'].apply(pd.Series)
df = df[['Instance','Name','Row ID 1','Row ID 2','Row ID 3','Row ID 4']].replace(np.nan, '')
输出:
Instance Name Row ID 1 Row ID 2 Row ID 3 Row ID 4
0 1 A 1.0 2.0 3.0
1 2 B 4.0 5.0
2 3 C 6.0 7.0 8.0 9.0
3 4 D 10.0 11.0
我有一个包含两列的数据集
如何使用Python转换成如下格式?
您可以在 Name
、aggregate
Sr Number
上 groupby
作为列表,然后在 apply
pd.Series
上创建行。
df = pd.DataFrame({'Sr Number':np.arange(1,12),'Name':['A']*3+['B']*2+['C']*4+['D']*2}).groupby('Name')['Sr Number'].agg(list).reset_index()
df['Instance'] = df.index + 1
df[[f'Row ID {i}' for i in range(1,len(df)+1)]] = df['Sr Number'].apply(pd.Series)
df = df[['Instance','Name','Row ID 1','Row ID 2','Row ID 3','Row ID 4']].replace(np.nan, '')
输出:
Instance Name Row ID 1 Row ID 2 Row ID 3 Row ID 4
0 1 A 1.0 2.0 3.0
1 2 B 4.0 5.0
2 3 C 6.0 7.0 8.0 9.0
3 4 D 10.0 11.0