【发布时间】:2019-05-30 10:55:54
【问题描述】:
我想检查是否发生了错误。 我有这两个数据框,来自 excel 文件:
Log_frame是日志文件的数据框,报告数据记录和错误:
Time Voltage[V] Freq[Hz] Speed Motor_Stt: ErrNo
0 10:00 220 50 30 1 0
1 10:10 220 50 30 1 0
2 10:20 220 50 0 2 3601
3 10:30 220 47 0 1 1500
4 10:40 250 50 0 1 7707
5 10:50 220 50 0 2 3601
6 11:00 220 50 0 2 3601
7 11:10 220 47 0 1 1500
8 11:20 220 50 30 1 0
9 11:30 220 50 30 1 0
dev_frame是错误描述的dataframe:
Fehler-Nr. Descr Cause
0 1500 Chk_Voltage Voltage out of range
1 7707 Chk_Freq. Freq. out of range
2 3601 Chk_Motor_Stt Motor_defec
3 7704 switch_trip chk_over_curr
从 Log_frame 我可以检查一天中是否发生了哪些错误以及发生了多少错误:
Err_log = Log_frame['ErrNo']
p = Err_log[Err_log != 0].drop_duplicates('first').reset_index(drop=True)
这个结果是熊猫系列:
<class 'pandas.core.series.Series'>
0 3601
1 1500
2 7707
我可以通过这个“通过”第一个错误(或第二个和所有其他错误):
Dev_Err = Dev_frame['Fehler-Nr.']
n = Dev_Err[Dev_Err == p.iloc[0]] #or 1, 2 and so on
我想知道如何通过 p.iloc[i] 循环。 我应该使用 for 循环还是可以通过任何 pandas 函数来完成
编辑:例如如果我将 1 放入 p.iloc[] 我可以得到:
0 1500
如果 2:
1 7707
【问题讨论】:
-
Dev_frame 没有
Fehler-Nr.栏目,可以添加到问题中吗? -
是的,请添加“Fehler-Nr.”有问题,我想您想将 Dev_Err df 子集化为 p,请多解释一下问题。
-
作为其他突出显示的添加“Fehler-Nr”作为列。您可以使用 pandas 的“合并”功能来获得所需的结果。
-
已编辑。我尝试了一个循环循环,增加 iloc[i] 但它似乎不起作用
标签: python-3.x pandas series