1
我在操作2017 developer survey results。我想隔離那些只包含行的行字符串Python
在HaveWorkedLanguage
列中。在只包含給定字符串的pandas數據框中選擇行(包含多個字符串)
這是df['HaveWorkedLanguage']
欄的樣子:
0 Swift
1 JavaScript; Python; Ruby; SQL
2 Java; PHP; Python
3 Python; R; SQL
4 NaN
5 JavaScript; PHP; Rust
6 Matlab; Python
7 CoffeeScript; Clojure; Elixir; Erlang; Haskell
8 C#; JavaScript
9 Objective-C; Swift
10 R; SQL
11 NaN
12 C; C++; Java
13 Java; JavaScript; Ruby; SQL
14 Assembly; C; C++
15 JavaScript; VB.NET
16 JavaScript
17 Python; Matlab; Rust; SQL; Swift
18 Python
19 Perl; Python
20 NaN
21 C#; JavaScript; SQL
22 Java
23 Python; SQL
24 NaN
25 Java; Scala
26 Java; JavaScript; Objective-C; Python; Swift
27 NaN
28 Python
29 NaN
...
我嘗試使用pandas.Series.str.match這應該:
確定每個字符串正則表達式匹配。
如這裏
import pandas as pd
df = pd.read_csv("survey_results_public.csv")
rows_w_Python = df[df['HaveWorkedLanguage'].str.match("Python", na=False)]['HaveWorkedLanguage']
問題示出的是,這個選擇包含Python
作爲第一條目的那些行,而不是那些含有僅Python
,其resulsts在:
3 Python; R; SQL
17 Python; Matlab; Rust; SQL; Swift
18 Python
23 Python; SQL
28 Python
...
我如何保留僅包含Python
的行?
也許'r'Python''作爲一個正則表達式,而不是字符串 'Python的' – KyrSt
你的意思是使用'R 「蟒」',而不是'Python'在上面的命令?試過了,沒有變化。 – Gabriel
「只有Python」是否需要正則表達式? 'df ['HaveWorkedLanguage'] =='Python''應該爲此創建一個布爾過濾器。 – ayhan