簡體   English   中英

數據框如何在給定列中找到字符串時添加特定行

[英]dataframe how to add a specific row when a string is found in a given column

假設我有一個數據框 P 並且在 col b 中有一個數據框,
我想重復那一行,現在它看起來像:

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 很陌生,還沒有找到一種直接的方法來實現這一點。 這是我已經嘗試過的

if P['b']=='v':
    P.pd.concat(P.loc,ignore_index=True)

您通常希望盡可能避免遍歷 DataFrame,因此如果您想找到所有這些行,使用帶有布爾索引的 loc 可以幫助您一次性找到它們,然后您可以將找到的內容復制到單獨的 DataFrame 中. 然后,只需將兩者連接起來。

p_2 = P.loc[P['b']=='n'].copy(deep=True)
P = pd.concat([P,P2],ignore_index=True)

您可以使用DataFrame.append

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM