我有一个DataFrame按日期索引的熊猫.有许多列,但许多列仅填充部分时间序列.我想找到非NaN值的第一个和最后一个值的位置,以便我可以提取日期并查看特定列的时间序列有多长.
有人能指出我如何做这样的事情吗?提前致谢.
如果我有一个具有NULL或一些非null值的系列.如何找到值不为NULL的第一行,以便我可以向用户报告数据类型.如果该值为非null,则所有值都是该系列中的相同数据类型.
谢谢
我有一个示例数据框显示如下.对于每一行,我想首先检查c1,如果它不为null,则检查c2.通过这种方式,找到第一个notnull列并将该值存储到列结果.
ID c1 c2 c3 c4 result
1 a b a
2 cc dd cc
3 ee ff ee
4 gg gg
Run Code Online (Sandbox Code Playgroud)
我现在正在使用这种方式.但我想知道是否有更好的方法.(列名没有任何模式,这只是样本)
df["result"] = np.where(df["c1"].notnull(), df["c1"], None)
df["result"] = np.where(df["result"].notnull(), df["result"], df["c2"])
df["result"] = np.where(df["result"].notnull(), df["result"], df["c3"])
df["result"] = np.where(df["result"].notnull(), df["result"], df["c4"])
df["result"] = np.where(df["result"].notnull(), df["result"], "unknown)
Run Code Online (Sandbox Code Playgroud)
当有很多列时,这种方法看起来不太好.