我正在尝试在具有日期时间索引列的DataFrame中删除行。使用<。
将str与int进行比较时出现错误我正在运行的代码如下。
def clean(df):
for i in range(len(df)):
hour = pd.Timestamp(df.index[i]).hour
minute = pd.Timestamp(df.index[i]).minute
if hour < 8 and minute < 45:
df.drop(axis=1, index=i, inplace=True)
这将导致错误:TypeError: '<' not supported between instances of 'str' and 'int'
如果我写一行:type(pd.Timestamp(df.index[i]).hour)
它返回<class 'int'>
我可以像hour += 1
那样进行数学运算,但是当比较小时或分钟时,if语句返回错误。将代码更改为hour = int(pd.Timestamp(df.index[i]).hour)
也无济于事。
谢谢
答案 0 :(得分:1)
您可以制作一个掩码,指定要保留的行,而不用遍历行(这会很慢),而让pandas
为您提供(更快)的答案:
df = df[(df.index.hour >=8) | (df.index.minute >= 45)]