[英]Preserving order with pandas.crosstab
我有以下 csv 數據:
question,answer
m2020_s,3
m2020_s,3
m2020_s,3
m2020_s,3
m2020_s,3
m2020_s,3
a2020_k,1
a2020_k,2
a2020_k,1
a2020_k,4
a2020_k,1
a2020_k,1
d2015_a,5
d2015_a,4
d2015_a,4
d2015_a,4
d2015_a,4
d2015_a,4
我正在使用pd.crosstab
來計算給出每個答案的次數,但是 function 弄亂了我的數據順序。 這是我的代碼:
import pandas as pd
df = pd.read_csv('example.csv')
output_array = pd.crosstab(df['question'], df['answer']).to_numpy()
print(output_array)
預期結果:
[[0 0 6 0 0]
[4 1 0 1 0]
[0 0 0 5 1]]
實際結果:
[[4 1 0 1 0]
[0 0 0 5 1]
[0 0 6 0 0]]
為什么會這樣? 以及如何保留數據的順序?
你可以試試這個,
pd.crosstab(df['question'], df['answer']).reindex(df['question'].unique()).to_numpy()
輸出/輸出:
array([[0, 0, 6, 0, 0],
[4, 1, 0, 1, 0],
[0, 0, 0, 5, 1]], dtype=int64)
說明:基於首次出現的數據集中的唯一元素重新排序索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.