繁体   English   中英

查找数据框列中值第一次出现的日期 - 查找每列的开始日期

[英]Find date of the first occurance of values in columns of a data frame - Find start dates for each column

如何在此数据框中查找 A 列和 B 列第一次出现值的日期?

所以,我想要A 的2012-04-03B列的2012-04-04

|                     |   A |   B |
|:--------------------|----:|----:|
| 2012-04-01 00:00:00 | nan | nan |
| 2012-04-02 00:00:00 | nan | nan |
| 2012-04-03 00:00:00 |   4 | nan | <- First occurrence of A
| 2012-04-04 00:00:00 |   6 |   2 | <- First occurrence of B
| 2012-04-05 00:00:00 |   5 | nan |
| 2012-04-06 00:00:00 | nan |   2 |
| 2012-04-07 00:00:00 |   8 |   3 |
| 2012-04-08 00:00:00 |   4 | nan |

这是制作df的代码:

df = pd.DataFrame(data={"A":[np.NaN, np.NaN, 4,6,5,np.NaN,8,4],"B":[np.NaN,np.NaN,np.NaN,2,np.NaN,2,3, np.NaN,]}, index=pd.date_range('2012-04-01', '2012-04-08'))

我尝试遍历列,然后使用dropna()摆脱NaNs ,然后​​通过索引检索日期。 ...我相信有更好的方法。

使用first_valid_index

>>> df.apply(lambda x: x.first_valid_index())
A   2012-04-03
B   2012-04-04
dtype: datetime64[ns]
for col in df.columns:
    print(df[df[col].notna()].head(1))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM