首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果包含某个条件/字符串,则在Dataframe中复制/乘行

如果包含某个条件/字符串,则在Dataframe中复制/乘行
EN

Stack Overflow用户
提问于 2022-10-25 12:53:27
回答 1查看 29关注 0票数 2

请参阅以下数据。

代码语言:javascript
复制
import pandas as pd

data = [['PMO', 10], ['LOL', 15], ['juli', 14], ['PMO', 10], ['LOL',
15], ['juli', 14]]
df = pd.DataFrame(data, columns=['Name', 'Age'])

print(df)

我想迭代这个说明性数据,并复制/乘行,以便如果一行包含或匹配PMO,则行在下面被复制。如果是的话,这是可能的吗?

亲切的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-25 12:54:49

下面是一个小技巧,检查名称是否等于PMO以获得布尔序列,并添加1以转换为1/2的整数序列。

代码语言:javascript
复制
out = df.loc[df.index.repeat(df['Name'].eq('PMO').add(1))]

对于更经典的方法,请使用concat

代码语言:javascript
复制
out = pd.concat([df, df.loc[df['Name'].eq('PMO')]]).sort_index()

产出:

代码语言:javascript
复制
   Name  Age
0   PMO   10
0   PMO   10
1   LOL   15
2  juli   14

用“juli”6次复制行:

代码语言:javascript
复制
N = 6
out = df.loc[df.index.repeat(df['Name'].eq('juli').mul(N-1).add(1))]

输出(只包含N=3以保持短):

代码语言:javascript
复制
   Name  Age
0   PMO   10
1   LOL   15
2  juli   14
2  juli   14
2  juli   14
3   PMO   10
4   LOL   15
5  juli   14
5  juli   14
5  juli   14
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74194407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档