熊猫-在列上操作,由数据集中的另一列过滤

时间:2019-04-08 17:20:20

标签: python pandas

我有一个带有几列带有日期的数据框-格式为datetime。

我正在尝试根据另一个日期列为NaN来获取日期的最小/最大值

现在,我分两个步骤进行操作:

temp_df = df[(df['date1'] == np.nan)]
max_date = max(temp_df['date2'])
temp_df = None

我得到了想要的结果,但是我使用的是不必要的临时数据框。

没有它,我该怎么办? 是否有任何参考资料可供阅读?

谢谢

1 个答案:

答案 0 :(得分:1)

这是一个MCVE,可用来从其他isnull()中的值(NaN或NaT)的列中获取统计信息。这可以单线完成。

import pandas as pd
import numpy as np
print(pd.__version__)

# sample date columns
daterange1 = pd.date_range('2017-01-01', '2018-01-01', freq='MS')
daterange2 = pd.date_range('2017-04-01', '2017-07-01', freq='MS')
daterange3 = pd.date_range('2017-06-01', '2018-02-01', freq='MS')
df1 = pd.DataFrame(data={'date1': daterange1})
df2 = pd.DataFrame(data={'date2': daterange2})
df3 = pd.DataFrame(data={'date3': daterange3})
# jam them together, making NaT's in non-overlapping ranges
df = pd.concat([df1, df2, df3], axis=0, sort=False)
df.reset_index(inplace=True)

max_date = df[(df['date1'].isnull())]['date2'].max()
print(max_date)