【发布时间】:2020-12-11 14:08:44
【问题描述】:
我有一个如下所示的数据框:
data = {'case_id': ['aaa', 'aaa', 'bbb', 'ccc', 'bbb', 'ccc'],
'file_name': ['512.mirnas', '512.isoforms', '360.isoforms', '478.mirnas', '360.mirnas', '478.isoforms']
}
df = pd.DataFrame(data, columns=['case_id', 'file_name'])
case_id file_name
0 aaa 512.mirnas
1 aaa 512.isoforms
2 bbb 360.isoforms
3 ccc 478.mirnas
4 bbb 360.mirnas
5 ccc 478.isoforms
对于每个唯一的“case_id”,有两个“file_names”,一个 mirnas 和一个 isoforms。我想折叠“case_id”并为 mirnas 和 isoforms 文件名创建新列。我正在努力实现这一目标:
case_id file_name_mirnas file_name_isoforms
0 aaa 512.mirnas 512.isoforms
1 bbb 360.mirnas 360.isoforms
2 ccc 478.mirnas 478.isoforms
我对 Python 很陌生,我发现很难完成这项工作。我在 df.pivot 试过,但没有用。我收到以下错误:
ValueError: Index contains duplicate entries, cannot reshape
我在想也许我可以创建两个新的空列“file_name_mirnas”和“file_name_isoforms”,然后使用 groupby 来填充这些列。但我不太确定该怎么做。
有人可以帮忙吗?
【问题讨论】: