【发布时间】:2016-10-05 21:45:56
【问题描述】:
我知道有无数种方法可以遍历数据框中的数据。 我正在从检测器、功率、频率、时间获取数据。时间和功率列在每一行中都有值。频率随时间变化但对于每个频率“段”,频率和占空比仅列在该段开头的列中。低于它的样子。
time power frequency duty cycle
1.4 1.2 500.0 45.0
2.1 49.9 NaN NaN
3.4 245.0 NaN NaN
4.5 323.0 NaN NaN
5.6 320.0 NaN NaN
6.6 309.0 1000 45
7.6 306.0 NaN NaN
8.7 305.0 NaN NaN
9.7 304.0 NaN NaN
10.8 300.0 NaN NaN
使用:
InitFreqs = df['frequency']
InitDuty = df['dutycycle']
for i in np.arange(1, len(InitFreqs)):
if np.isnan(InitFreqs[i]):
InitFreqs[i] = InitFreqs[i - 1]
InitDuty[i] = InitDuty[i - 1]
我得到了我想要的结果,如下所示:
time power frequency duty cycle
1.4 1.2 500.0 45.0
2.1 49.9 500.0 45.0
3.4 245.0 500.0 45.0
4.5 323.0 500.0 45.0
5.6 320.0 500.0 45.0
6.6 309.0 1000 45.0
7.6 306.0 1000 45.0
8.7 305.0 1000 45.0
9.7 304.0 1000 45.0
10.8 300.0 1000 45.0
此示例中的 45 可能会或可能不会更改,后续值需要反映这一点。虽然这可以完成工作,但它非常缓慢且效率低下。我找到了如何用其他东西或所有 NaN 替换列中的 all 值的示例,但不完全是我想要的。
与for i 语句相比,我应该能够对整个列执行此操作。
【问题讨论】:
标签: python python-3.x numpy dataframe