我正在处理一个看起来很琐碎但实际上并不简单的问题。总体情况是:data
- 一个pandas数据帧 - 包含(除其他列外)TOTAL_VISITS
和NUM_PRINTS
两列。
目标:给定num_prints
参数,找到NUM_prints = num_prints
的行,并用给定数字填充其中的nan
值。
我停下来的地方并且它不再有意义了:
indices= data['NUM_PRINTS'] == num_prints
data.loc[indices,'TOTAL_VISITS'].fillna(5,inplace=True)
据我所知和了解,这应该是有效的。实践中没有将NaN填充为任何值,似乎使用副本或其他方式可以正常工作,因为它不会改变原始对象。
有效的内容:
data.loc[indices,'TOTAL_VISITS'] = 2
这会在num_print
条件下将列填充为2,但不考虑NaN。
data['TOTAL_VISITS'].fillna(0, inplace=True)
这样做可以将总访问量中的NaN值填充为0,但不考虑num_prints条件。
使用常规的for循环和.iloc以及条件处理时间太长,我感到有些无助。