After creating the three-rows DataFrame:
import pandas as pd
df = pd.DataFrame({'a': ['1-2', '3-4', '5-6']})
I check if there is any cell equal to '3-4':
df['a']=='3-4'
Since df['a']=='3-4' command results to pandas.core.series.Series object I can use it to create a "filtered" version of the original DataFrame like so:
filtered = df[ df['a']=='3-4' ]
In Python I can check for the occurrence of the string character in another string using:
string_value = '3-4'
print('-' in string_value)
What would be a way to accomplish the same while working with DataFrames?
So, I could create the filtered version of the original DataFrame by
checking if '-' character in every row's cell, like:
filtered = df['-' in df['a']]
But this syntax above is invalid and throws KeyError: False error message.
解决方案
Use str and contains:
In [5]: df['a'].str.contains('-')
Out[5]:
0 True
1 True
2 True
Name: a, dtype: bool