python - 将空行转换为熊猫中的列
问题描述
我有一行是空的,除了第一列中的值。我想将所有这样的行转换成这样的列:
x_df = pd.DataFrame({'A':['John','ex1','ex2','Joe','qz1','qz2','qz3'],
'val1':[ '',10,5,'',80,10,10],
'val2':[ '',20,6,'',90,10,1],
'val3':[ '',30,7,'',100,10,0]})
Out[222]:
A val1 val2 val3
0 john
1 ex1 10 20 30
2 ex2 5 6 7
3 joe
4 qz1 80 90 100
5 qz2 10 10 10
6 qz3 10 1 0
预期输出:
x_df =
A val1 val2 val3 name
0 ex1 10 20 30 john
1 ex2 5 6 7 john
2 qz1 80 90 100 joe
3 qz2 10 10 10 joe
4 qz3 10 1 0 joe
解决方案
这就是我要做的:
# mask the empty rows
# you can use x_df.iloc[:, 1:] instead
s = x_df.filter(like='val').ne('').any(1)
# name column
# mask(s) selects the empty rows
# ffill fills the other rows
x_df['name'] = x_df['A'].mask(s).ffill()
# filter
x_df[s]
输出:
A val1 val2 val3 name
1 ex1 10 20 30 John
2 ex2 5 6 7 John
4 qz1 80 90 100 Joe
5 qz2 10 10 10 Joe
6 qz3 10 1 0 Joe
推荐阅读
- mysql - 找到总分最高的用户
- c# - .NET 依赖注入与依赖于其他通用服务的通用服务
- c# - 删除预制件的克隆
- javascript - 如何随机排序列表项异常?
- java - Spring 5.2.x Web Application 中的 AspectJ Load Time Weaving 未编织某些 bean
- javascript - 无法加载资源:net::ERR_CONNECTION_RESET 角度
- apache-kafka - 明确指定 KSQL 流主题名称
- java - 如果为空,则使用 JPA/Hibernate 创建引用实体
- html - 如何在 Wagtail CMS 上将查询外部模型的上下文添加到另一个模型的模板
- c# - “数据连接的 TLS 会话未恢复或会话与控制连接不匹配”错误