說你的列被稱爲cat
和val
:
In [26]: df = pd.DataFrame({'cat': ['C', 'C', 'A', 'B', 'B', 'A', 'C'], 'val': [4, 5, 1, 6, 1, 2, 4]})
In [27]: df
Out[27]:
cat val
0 C 4
1 C 5
2 A 1
3 B 6
4 B 1
5 A 2
6 C 4
然後你可以hierarchicaly groupby
表,然後拆散它:
In [28]: df.val.groupby([df.cat, df.val]).sum().unstack().fillna(0).astype(int)
Out[28]:
val 1 2 4 5 6
cat
A 1 2 0 0 0
B 1 0 0 0 6
C 0 0 8 5 0
編輯
由於IANS指出,3在這裏失蹤(謝謝!)。如果您需要有一系列色譜柱,那麼您可以使用
r = df.val.groupby([df.cat, df.val]).sum().unstack().fillna(0).astype(int)
for c in set(range(1, 7)) - set(df.val.unique()):
r[c] = 0
的數據?我從文件中讀取 –
當然,但是如何?提供代碼,我們可能會進一步提供幫助。 – Jan