import pandas as pd
import matplotlib as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_csv("device_status.txt", sep=",", names=["device_id","device_status"])
status_map = {0:'A',1:'B',2:'C'}
device_count = pd.crosstab(index=df['device_id'],columns=df['device_status'].replace(status_map),
colnames=['device_type']).reindex(columns=["A","B","C"],fill_value=0)
device_count['total'] = device_count.sum(axis=1)
device_count['status'] = np.where(device_count["total"]>3,
"不正常",'正常'
)
device_count.to_csv('result.csv', columns=['A','B','C','status'])
数据:
D0001,1 D0002,1 D0003,0 D0004,2 D0005,2 D0006,0 D0007,0 D0003,0 D0003,2 D0003,2 D0003,1