簡體   English   中英

Pandas:根據列的值對 Dataframe 進行切片

[英]Pandas: slice Dataframe according to values of a column

我必須根據出現在我的 Dataframe 列之一中的值(從 txt 導入)對我的 Dataframe 進行切片。 這就是我所擁有的:

>df
col1 col2
 a    1
 b    2
 c    3
 d    4

>'mytxt.txt'
2
3

這就是我需要的:只要col2中的值不在 mytxt.txt 中,就刪除行

預期結果必須是:

>df
col1 col2
 b    2
 c    3

我試過:

values = pd.read_csv('mytxt.txt', header=None)
df = df.col2.isin(values)

但它不起作用。 非常感謝您的幫助,謝謝!

當您讀取values ,我會將其作為一個系列來執行,然后將其轉換為一個集合,這將更有效地查找:

values = pd.read_csv('mytxt.txt', header=None, squeeze=True)
values = set(values.tolist())

然后切片將起作用:

>>> df[df.col2.isin(values)]
  col1  col2
1    b     2
2    c     3

發生的情況是您將values作為 DataFrame 而不是系列讀取,因此.isin方法的行為不符合您的預期。

暫無
暫無

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

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