我有一个相当简单的循环,运行良好,但比我想象的要长得多(大约 5 分钟)。
for i in range(len(df)):
if pd.isnull(df['Date'][i]):
df['Date'][i] = df['Date'][i-1]
这里的目的是修复我拥有的数据文件中的日期和时间,该文件的结构是每天的第一行包含日期文本,但其他所有行都是空白。我只是想看看该值是否为 null,如果是,则将其设置为之前的值。
有没有更像 Pandas 的方式来更有效地做到这一点?
谢谢, 本
最佳答案
使用正向填充ffill
df.Date.ffill(inplace=True)
演示
df = pd.DataFrame(dict(
Date=['Wed', None, None, 'Thr', None, None],
Time=[1, 2, 3, 4, 5, 6]
))
df
Date Time
0 Wed 1
1 None 2
2 None 3
3 Thr 4
4 None 5
5 None 6
然后
df.Date.ffill(inplace=True)
df
Date Time
0 Wed 1
1 Wed 2
2 Wed 3
3 Thr 4
4 Thr 5
5 Thr 6
关于python - 如何加速简单的 Pandas for/if 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581674/