首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dataframe当在给定列中找到字符串时如何添加特定行

dataframe当在给定列中找到字符串时如何添加特定行
EN

Stack Overflow用户
提问于 2020-03-05 01:56:45
回答 2查看 29关注 0票数 0

假设我有一个数据帧P并且无论何时在列b中有N,

我想重复这一行,这样现在看起来就像:

代码语言:javascript
复制
From: 
a b c d
1 v 4 5
4 n 6 7
5 v 6 8

To:
a b c d
1 v 4 5
4 n 6 7
4 n 6 7
5 v 6 8

我是python的新手,还没有找到一种简单的方法来实现这一点。下面是我已经尝试过的

代码语言:javascript
复制
if P['b']=='v':
    P.pd.concat(P.loc,ignore_index=True)
EN

回答 2

Stack Overflow用户

发布于 2020-03-05 02:04:53

您通常希望尽可能避免遍历DataFrame,因此,如果您希望查找所有这些行,使用带布尔索引的loc可以帮助您在一次扫描中找到它们,然后您可以将找到的内容复制到单独的DataFrame中。然后,将这两个连接起来。

代码语言:javascript
复制
p_2 = P.loc[P['b']=='n'].copy(deep=True)
P = pd.concat([P,P2],ignore_index=True)
票数 2
EN

Stack Overflow用户

发布于 2020-03-05 02:21:22

您可以使用DataFrame.append

代码语言:javascript
复制
In [1]: df
Out[1]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
2  5  v  6  8

In [2]: df.append(df.loc[df['b'] == 'n'])
Out[2]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
2  5  v  6  8
1  4  n  6  7

请注意,它在DataFrame的末尾追加了行。如果希望将其放在要复制的行的旁边,可以使用sort_index

代码语言:javascript
复制
In [3]: df
Out[3]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
2  5  v  6  8

In [4]: df.append(df.loc[df['b'] == 'n']).sort_index()
Out[4]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
1  4  n  6  7
2  5  v  6  8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60532049

复制
相关文章

相似问题

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