pandas DataFrame按数组中的元素选择

Posted

技术标签:

【中文标题】pandas DataFrame按数组中的元素选择【英文标题】:pandas DataFrame selection by element in array 【发布时间】:2020-05-21 09:03:44 【问题描述】:

尝试根据 df 中数组中某个元素的出现来选择 df 的子集。

df = pd.DataFrame()
vals = []
for i in range(3):
    vals.append(np.linspace(0,1,i+1))
df['vals']=vals

df.isin('vals':[0.5])

返回TypeError: unhashable type: 'numpy.ndarray'

这样的 df 选择的其他选项?

【问题讨论】:

【参考方案1】:

你需要applyin作为布尔掩码,如果需要过滤器使用boolean indexing

print (df.vals.apply(lambda x: 0.5 in x))
0    False
1    False
2     True
Name: vals, dtype: bool

print (df[df.vals.apply(lambda x: 0.5 in x)])
              vals
2  [0.0, 0.5, 1.0]

【讨论】:

以上是关于pandas DataFrame按数组中的元素选择的主要内容,如果未能解决你的问题,请参考以下文章

Pandas Dataframe 中的回收利用

Pandas 数据结构之 DataFrame使用教程

004.pandas.DataFrame

004.pandas.DataFrame

将 Numpy 数组按列转换为 Pandas DataFrame(作为单行)

使用 numpy 数组中的值从 DataFrame 创建 Pandas DataFrame 以访问数据框索引