这是我拥有的数据框:
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)
你能告诉我我怎么能做到这一点吗?提前致谢。
看起来是 pandas pivot_table的完美应用。
值得强调的是,pivot_table 使用 numpy mean 作为聚合函数(以防有多个观察值具有相同的索引和列。因此,默认情况下它隐式需要数字(int/floats)作为值。
让我们frame
成为包含您的数据的熊猫数据框:
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句