![](/img/trans.png)
[英]find first column elements in entire data frame and return first column values in front of each row(Pandas)
[英]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-03
和B列的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
,然后通过索引检索日期。 ...我相信有更好的方法。
>>> 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.