python - 尝试将项目从列移动到行中,但不转置,也不从长到宽

标签 python python-3.x pandas dataframe

我的数据看起来像这样。

enter image description here

我想把它 reshape 成这样。

enter image description here

这是我的示例数据。

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/

相关文章:

python - 如何访问 DataFrame Pandas 中的时间戳?

数组条件循环的 Pythonic 代码(市场均值指数)

Python - 将多个列表中的元素 append 在一起的不同技术的相对性能是什么?

python - 为什么 dropna() 和 Replace() 方法不适用于数据框中丢失的数据?

python - 使用 Pandas 将三个或更多数据帧合并为单个数据帧并保留空值

python - Pandas:使用自定义函数重新索引

python - 为什么 "class"不像 "def"那样启动一个新范围?

python - 是否可以使用诅咒仅读取按键而不执行其他操作?

python - yaml.load,将 dict 键强制转换为字符串

python - 如何创建 Pandas 列的所有可能组合?