我有以下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来计算每个答案被给出的次数,但是这个函数扰乱了我的数据的顺序。这是我的代码:
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]]为什么会发生这种情况?我怎样才能保存数据的顺序?
发布于 2022-08-02 15:21:15
你能试试这个吗
pd.crosstab(df['question'], df['answer']).reindex(df['question'].unique()).to_numpy()O/P:
array([[0, 0, 6, 0, 0],
[4, 1, 0, 1, 0],
[0, 0, 0, 5, 1]], dtype=int64)说明:根据数据集中的唯一元素重新排序索引,基于第一次出现。
https://stackoverflow.com/questions/73209917
复制相似问题