Pandas 如何重塑包含列重复值的数据框
Pandas how to reshape a dataframe containing duplicated values for columns
这是我的数据框:
chr value region
chr22 1 21-77
chr6 3 12-65
chr3 5 73-81
chr3 8 91-96
这就是我需要的:
21-77 12-65 73-81 91-96
chr22 1 0 0 0
chr6 0 3 0 0
chr3 0 0 5 8
请注意初始数据框的第一列包含重复值。 (例如 chr3)
你能告诉我如何实现吗?
提前致谢。
thislink会有帮助吗?
为了将来参考,请在发布问题之前进行研究,因为可能已经有对您有帮助的答案,或者可能已经有人解决了您遇到的相同问题。
看起来非常适合 pandas pivot_table。
值得强调的是 pivot_table 使用 numpy mean 作为聚合函数(以防有多个观察值具有相同的索引和列。因此它默认需要数字 (int/floats) 作为值。
让 frame
成为包含您的数据的 pandas 数据框:
import pandas as pd
cc = ['chr', 'value', 'region']
vals = [['chr22', 1, '21-77'],
['chr6', 3, '12-65'],
['chr3', 5, '73-81'],
['chr3', 8, '91-96']]
frame = pd.DataFrame(vals, columns = cc)
result = pd.pivot_table(frame,
values = 'value', index = ['chr'], columns = ['region'],
fill_value = 0)
这是我的数据框:
chr value region
chr22 1 21-77
chr6 3 12-65
chr3 5 73-81
chr3 8 91-96
这就是我需要的:
21-77 12-65 73-81 91-96
chr22 1 0 0 0
chr6 0 3 0 0
chr3 0 0 5 8
请注意初始数据框的第一列包含重复值。 (例如 chr3)
你能告诉我如何实现吗? 提前致谢。
thislink会有帮助吗?
为了将来参考,请在发布问题之前进行研究,因为可能已经有对您有帮助的答案,或者可能已经有人解决了您遇到的相同问题。
看起来非常适合 pandas pivot_table。
值得强调的是 pivot_table 使用 numpy mean 作为聚合函数(以防有多个观察值具有相同的索引和列。因此它默认需要数字 (int/floats) 作为值。
让 frame
成为包含您的数据的 pandas 数据框:
import pandas as pd
cc = ['chr', 'value', 'region']
vals = [['chr22', 1, '21-77'],
['chr6', 3, '12-65'],
['chr3', 5, '73-81'],
['chr3', 8, '91-96']]
frame = pd.DataFrame(vals, columns = cc)
result = pd.pivot_table(frame,
values = 'value', index = ['chr'], columns = ['region'],
fill_value = 0)