【发布时间】:2021-12-21 16:28:47
【问题描述】:
我正在尝试在数据帧上运行条件 for 循环。如果不满足条件,则将最后一行附加到结果数据帧中。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(100, size=(100,3)), columns=['Value1', 'Value2', 'Value3'])
split_df = [df[i:i+12] for i in range(0, len(df))]
result = []
for i in split_df:
if i == 0:
result = split_df[i]
else:
last_row = split_df[i].tail(1)
result = result.append(last_row, ignore_index=True)
对于If i == 0:,我收到以下错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我该如何解决这个问题?
【问题讨论】:
-
当您查看
i == 0时,您认为i是什么? -
仅供参考
split_df = [df[i:i+12] for i in range(0, len(df))]相当于df.rolling(12)
标签: python pandas dataframe for-loop if-statement