1
我有一個帶有字符串值的熊貓數據框,我希望能夠返回其中包含某些子字符串的數據框的子集。這是很容易在這樣一個系列(例如改編自熊貓文檔)做:在包含子串的熊貓數據框中查找值
import pandas as pd
import numpy as np
s4 = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat'])
s4[s4.str.contains('A', na=False)]
0 A
3 Aaba
6 CABA
dtype: object
我希望在一個數據幀的所有列搜索字符串工作一樣的系列,但也有沒有.str數據框的方法。您可以過濾數據幀的字符串像這樣的精確匹配:
df = pd.concat((s4, s4.shift(1)), axis=1)
0 1
0 A NaN
1 B A
2 C B
3 Aaba C
4 Baca Aaba
5 NaN Baca
6 CABA NaN
7 dog CABA
8 cat dog
filtered_df = df[df == 'Baca']
0 1
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 Baca NaN
5 NaN Baca
6 NaN NaN
7 NaN NaN
8 NaN NaN
result = df[df contains 'ac']
我希望將返回同樣的事情filtered_df = df[df == 'Baca']
但它是無效的語法。我嘗試使用df.apply將series.str.contains方法應用於數據框的每個系列。如果這是一個可行的解決方案,我無法解決這個問題。我在Linux/Ubuntu上使用python 3.5和pandas 0.18。
相關:http://stackoverflow.com/questions/26640129/search-for -string-進全大熊貓-數據幀列和過濾器 –