我有一个如下所示的数据帧
df2 = pd.DataFrame({'person_id':[1],'H1_date' : ['2006-10-30 00:00:00'], 'H1':[2.3],'H2_date' : ['2016-10-30 00:00:00'], 'H2':[12.3],'H3_date' : ['2026-11-30 00:00:00'], 'H3':[22.3],'H4_date' : ['2106-10-30 00:00:00'], 'H4':[42.3],'H5_date' : [np.nan], 'H5':[np.nan],'H6_date' : ['2006-10-30 00:00:00'], 'H6':[2.3],'H7_date' : [np.nan], 'H7':[2.3],'H8_date' : ['2006-10-30 00:00:00'], 'H8':[np.nan]})
As shown in my screenshot above, my source datframe (df2
) contains few NA’s
当我执行“df2.stack()”时,我会丢失数据中的所有NA。 不过,我想保留NA的'H7\u date'和'H8',因为他们有 它们对应的值/日期对。对于'H7\u date',我有一个有效值
对于H7和H8,我得到了它对应的日期。
我只想在两个值(H5\u date
,H5
)都为空时删除记录
不。
请注意,我这里只有几列,我的真实数据超过了
150列和列名事先未知。
我希望我的输出如下图所示这是不可能的
有’H5_date’,’H5’,尽管他们是NA的
try pd.DataFrame.melt
df = pd.melt(df2, id_vars='person_id', var_name='col', value_name='dates')
df['col2'] = df['col'].str.split("_").str[0]
df['count'] = df.groupby(['col2'])['dates'].transform(pd.Series.count)
df = df[df['count'] != 0]
df.drop(['col2', 'count'], axis=1, inplace=True)
print(df)
person_id col dates
0 1 H1_date 2006-10-30 00:00:00
1 1 H1 2.3
2 1 H2_date 2016-10-30 00:00:00
3 1 H2 12.3
4 1 H3_date 2026-11-30 00:00:00
5 1 H3 22.3
6 1 H4_date 2106-10-30 00:00:00
7 1 H4 42.3
10 1 H6_date 2006-10-30 00:00:00
11 1 H6 2.3
12 1 H7_date NaN
13 1 H7 2.3
14 1 H8_date 2006-10-30 00:00:00
15 1 H8 NaN
问题内容: 我有活动: 在此容器内,取决于所按下的按钮是FragmentA还是FragmentB。这些片段是嵌套子片段的 容器 。即,每个片段中都包含自己的导航堆栈。 在活动的onCreate中,我将实例化这两个片段: 然后,我继续互相替换: 到目前为止,一切都很好。但 问题: 每次我用fragmentB替换fragmentA时(反之亦然) -getChildFragmentManager() 破
我有两个30m x 30m光栅文件,我想从中采样点。在采样之前,我想从图像中去除云层。我转向R和Hijman的光栅包来完成这项任务。 我使用绘图Poly(sp=TRUE)命令,绘制了18个不同的多边形。该函数似乎不允许18个多边形作为一个sp对象,所以我将它们全部分开绘制。然后,我给多边形一个与光栅匹配的投影4string,并将它们设置为列表。我通过lApplication函数运行列表以将它们转换
基于Spark Scala代码,我可以看到在内部调用sort方法,该方法执行全局排序。 https://github.com/apache/spark/blob/branch-2.4/sql/core/src/main/scala/org/apache/spark/sql/dataset.scala 而且drop_duplicates(cols)方法也按照bellow spark代码转换为聚合(f
如何从堆栈中弹出特定片段,并从片段中删除其他片段?例如,这些是我的片段,我现在在E right know。 A- 想从E回到B,清除C和D。我怎么能做到这一点?
问题内容: 有什么规范的方法可以从堆栈中删除添加的中间件?似乎应该可以直接修改数组,但是我想知道是否有一个我应该首先考虑的文档化方法。 问题答案: 实际上来自Connect(不是Express),它真正要做的就是将中间件功能推送到应用程序的。 因此,您应该很好地将函数拼接出数组。 但是,请记住,周围没有文档,也没有删除中间件的功能。您冒着将来版本的Connect进行更改与代码不兼容的风险。
我有下表和Postgres: 作为select查询的一部分,我希望能够基于最高的Col2值(每个Col1值永远不会有多个最高值)在Col1中删除重复项,并保留相应的Col2、Col3值。 期望输出: