假设我有以下数据集:
>>> import pandas as pd
>>>
>>> data = {'index': [0, 1, 2], 'value': ['zero', 1, 'two']}
>>>
>>> df = pd.DataFrame(data)
>>> df
index value
0 0 zero
1 1 1
2 2 two
我想删除“value”列中不包含字符串的所有行,因此在本例中,我想删除第二行(或索引为1的行)。
我天真地尝试过跑步:
df[isinstance(df['value'], str)]
但是,这会导致错误。对于上下文,我正在处理的实际数据集有数千行。
我知道类似的问题,但我不认为他们在与此相同的上下文中回答这个问题。
isinstance
只能检查单个元素,但df
有多个元素。它可能需要使用 for-loop
或 .apply()
分别在每个元素上运行 isinstance
df[ df['value'].apply(lambda x:isinstance(x, str)) ]