遍历 Python Pandas 中的日期比较
Iterating through comparison of dates in Python Pandas
现在我正在迭代 pandas 数据框以修补数据与日期时间列的不一致,但运行时是残酷的。
def fix(row):
return row.datetime_column2 if row.datetime_column1 > row.datetime_column2 else row.datetime_column1
df['datetime_column1'] = df.apply(fix, axis = 1)
有没有更聪明的方法来做到这一点?
IIUC 您可以使用这种矢量化方法:
df['datetime_column1'] = \
np.where(df['datetime_column1'] > df['datetime_column2'],
df['datetime_column2'],
df['datetime_column1'])
或:
df['datetime_column1'] = df[['datetime_column1','datetime_column2']].min(1)
如果可以 pandas/numpy,请不要像使用 (axis=1) 那样使用 for 循环。尝试以下操作。也应该适用于约会。
df=pd.DataFrame(data={'column_1':[1,3,5,5],'column_2':[0,4,1,6] })
df.loc[df.column_1>df.column_2, 'column_1'] = df.column_2
现在我正在迭代 pandas 数据框以修补数据与日期时间列的不一致,但运行时是残酷的。
def fix(row):
return row.datetime_column2 if row.datetime_column1 > row.datetime_column2 else row.datetime_column1
df['datetime_column1'] = df.apply(fix, axis = 1)
有没有更聪明的方法来做到这一点?
IIUC 您可以使用这种矢量化方法:
df['datetime_column1'] = \
np.where(df['datetime_column1'] > df['datetime_column2'],
df['datetime_column2'],
df['datetime_column1'])
或:
df['datetime_column1'] = df[['datetime_column1','datetime_column2']].min(1)
如果可以 pandas/numpy,请不要像使用 (axis=1) 那样使用 for 循环。尝试以下操作。也应该适用于约会。
df=pd.DataFrame(data={'column_1':[1,3,5,5],'column_2':[0,4,1,6] })
df.loc[df.column_1>df.column_2, 'column_1'] = df.column_2