- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的数据,它让我发疯。源是我用 tabula 阅读的 pdf 文件提取表。问题是表格的某些行在文档中是多行的,这就是我看到输出的方式。
> sub_df.iloc[85:95]
1 Acronym Meaning
86 ABC Aaaaa Bbbbb Ccccc
87 CDE Ccccc Ddddd Eeeee
88 NaN Fffff Ggggg
89 FGH NaN
90 NaN Hhhhh
91 IJK Iiiii Jjjjj Kkkkk
92 LMN Lllll Mmmmm Nnnnn
93 OPQ Ooooo Ppppp Qqqqq
94 RST Rrrrr Sssss Ttttt
95 UVZ Uuuuu Vvvvv Zzzzz
我想得到的是这样的。
> sub_df.iloc[85:95]
1 Acronym Meaning
86 ABC Aaaaa Bbbbb Ccccc
87 CDE Ccccc Ddddd Eeeee
88 FGH Fffff Ggggg Hhhhh
91 IJK Iiiii Jjjjj Kkkkk
92 LMN Lllll Mmmmm Nnnnn
93 OPQ Ooooo Ppppp Qqqqq
94 RST Rrrrr Sssss Ttttt
95 UVZ Uuuuu Vvvvv Zzzzz
我正在为 combine_first 苦苦挣扎像这样:
sub_df.iloc[[88]].combine_first(sub_df.iloc[[87]])
但结果不是我所期望的。
也是 groupby 的解决方案将不胜感激。
注意:索引不重要,可以重新设置。我只想连接一些列为 NaN 的连续行,然后将其转储到 csv,所以我不需要它们。
最佳答案
这是一个非常棘手的问题,ffill
和 bfill
都不能解决这个问题
s1=(~(df.Acronym.isnull()|df.Meaning.isnull())) # create the group
s=s1.astype(int).diff().ne(0).cumsum() # create the group for each bad line it will assign the single id
bad=df[~s1]# we just only change the bad one
good=df[s1]# keep the good one no change
bad=bad.groupby(s.loc[bad.index]).agg({'1':'first','Acronym':'first','Meaning':lambda x : ''.join(x[x.notnull()])})
pd.concat([good,bad]).sort_index()
Out[107]:
1 Acronym Meaning
0 86 ABC Aaaaa Bbbbb Ccccc
1 87 CDE Ccccc Ddddd Eeeee
2 88 FGH Fffff Ggggg Hhhhh
5 91 IJK Iiiii Jjjjj Kkkkk
6 92 LMN Lllll Mmmmm Nnnnn
7 93 OPQ Ooooo Ppppp Qqqqq
8 94 RST Rrrrr Sssss Ttttt
9 95 UVZ Uuuuu Vvvvv Zzzzz
关于python - 如何合并列为 NaN 的连续行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53853085/
我想我接近了但不确定: 我有一个包含电子邮件地址、个人和工作的示例表。我正在尝试创建一个包含单个地址的新表。 然后插入一个电子邮件地址,例如:如果用户有工作电子邮件但没有个人电子邮件,则插入工作电子邮
在列上允许 NULL 值通常是为了允许表示不存在的值。使用 NVARCHAR 时,可能会出现空字符串,而无需将列设置为 NULL。在大多数情况下,我看不到带有空字符串的 NVARCHAR 与此类列的
我有下表 security 证券: id | bbg_ticker | ticker | currency | exchange | type -------+------
我正在处理 DB2 上的一些 SQL 查询。是否可以选择表中的所有列并在该选择语句中使用“as”关键字指定某些条件?例如,这个查询是否可行: select *, col1 + col2 as
我有一个名为 TP_Roles 的表。 该表结构是: Id PK, int, not null Role_Name varchar(200), null IsActive bit, nul
我有一个这样的表: +----+-------+-------+-------+ | Id | Flag1 | Flag2 | Flag3 | +----+-------+-------+------
自从我尝试创建此 MySQL View 以来,我的头痛就开始了,其中一列的结果值为 NULL。我需要一个像 0 这样的真实值。 我从表 1 中取出我的 ID 并在表 2 中进行比较,因此不确定是否有一
我必须制作一个符合特定条件的数据结构。 首先这 4 个函数必须在 O(log(n)) 中: insert(Object o) insert(int index, Object o) delete(
据我了解, useRef 返回的容器总是相同的——但在 useEffect 和类似函数中引用它们会导致 eslint 详尽的警告。在这种情况下忽略警告是否安全,以及避免用警告阻塞输出日志和禁用行注释的
我有一个很好的算法,可以返回同一条船上连续安装的最旧的部分安装:How to get oldest part installation of consecutive installations the
我有一个存储过程,它有一个字符串参数。当我使用包含一些特殊字符(如“ş”或“ğ”)的单词进行调用时,它返回错误代码:1366。第 1 行的“personalNames”列的字符串值不正确:“\xC5\
文件: Person1:AP Person2:AP Person3:KE Person4:KE Person5:UK Person6:AP Person7:UK Person8:AP 我试过的是: i
我想知道如果 A 列为空,我如何显示 B 列中的数据。原因是如果我们从我们的一个制造商那里获得产品,它会被放在不同的列中。但是,当我去构建报告时,这两列本质上是相同的东西,而且它把图表扔掉了。任何帮助
因此,如果列为空或 null,我会尝试过滤掉一些行。 我该怎么做? 看来我需要某种类似于 SQL 的语句。 我想要这样的东西: t.DefaultView.RowFilter = string.For
我想强制所有 Oracle DATE 列为 LocalDateTime。 我尝试过的: LOCALDATETIME java.time.LocalDateTime DATE\
我正在尝试为我的数据库创建一个 View 。 CREATE VIEW `latest` AS SELECT r.id as recheck_id, f.id as failure_id, r.`whe
我这里有一些动态生成列表的代码: transaction.executeSql('SELECT * FROM table1 WHERE checkb = "true" ORDER BY date DE
如果我有下表: canAssign ------------ 1 有没有办法将列标题文本(例如,canAssign 等)添加到 CheckedListBox 作为用户可以检查的
这个问题可能很愚蠢,但这是我第一次接触 gcc 文档。 我知道basic_streambuf::pubseekoff() 是模板类basic_streambuf 的公共(public)成员函数,但它没
我需要用户能够以以下格式将数据输入到文本区域。 姓名,电子邮件@email.com 姓名,电子邮件@email.com 姓名,电子邮件@email.com 然后信息将被发送到 mysql 数据库。我的
我是一名优秀的程序员,十分优秀!