我的数据看起来像这样。
我想把它 reshape 成这样。
这是我的示例数据。
import pandas as pd
data = {'raw_data': ['Severity', 'Severity', 'Severity', 'Severity', 'Manager', 'Manager', 'Manager', 'Manager', 'Incident Category', 'Incident Category' ,'Incident Category', 'Request Category', 'Request Category', 'Request Category', 'Request Category', 'Request Category'],
'description': ['3 - Normal', '4 - Low', '2 - High', '1 - Urgent', 'Ben', 'Ted', 'Tom', 'Mary', 'UI :: Platform Site', 'Data :: Incomplete Data', 'Front End :: Google.com', 'Add/Remove Subscription', 'Dataset :: Delete ', 'Dataset :: Create', 'User :: Edit User', 'Company :: Add Company']}
df = pd.DataFrame(data)
print(df)
我不认为这是一个简单的转置,也不认为这是从长到宽。除了转换之外,我不知道该怎么调用它。
我尝试了一些使用 group by 的想法,但到目前为止还没有任何结果。
df1['raw_title'] = df1.groupby('ticket_custom_fields_name').cumcount()
df2 = df1['raw_title']
print(df2)
df2 = df1.sort_values('raw_title').groupby('ticket_custom_fields_name').ffill().sort_index()
print(df2)
df3 = df1['ID'] = df1.groupby('ticket_custom_fields_name')['raw_title'].transform('first')
print(df3)
最佳答案
首先按 raw_data 分组并重新创建数据框,然后向上移动单元格
new_df = df.groupby('raw_data').description.apply(pd.DataFrame)
new_df = new_df.apply(lambda x: pd.Series(x.dropna().values)).fillna('')
Incident Category Manager Request Category Severity
0 UI :: Platform Site Ben Add/Remove Subscription 3 - Normal
1 Data :: Incomplete Data Ted Dataset :: Delete 4 - Low
2 Front End :: Google.com Tom Dataset :: Create 2 - High
3 Mary User :: Edit User 1 - Urgent
4 Company :: Add Company
关于python - 尝试将项目从列移动到行中,但不转置,也不从长到宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52745526/