Python 熊猫';数据帧';对象没有属性';str';

Python 熊猫';数据帧';对象没有属性';str';,python,pandas,q,Python,Pandas,Q,我试图过滤掉包含产品列表的数据框。但是,每当我运行代码时,我都会得到pandas-“dataframe”对象没有属性“str”错误 以下是代码行: include_clique = log_df.loc[log_df['Product'].str.contains("Product A")] 如果有人有什么建议,请告诉我。我已经找了很多次了,我被卡住了 产品是一种对象数据类型 编辑: 这是标题: ID PRODUCT M24 M23 M22 M21

我试图过滤掉包含产品列表的数据框。但是,每当我运行代码时,我都会得到pandas-“dataframe”对象没有属性“str”错误

以下是代码行:

include_clique = log_df.loc[log_df['Product'].str.contains("Product A")]
如果有人有什么建议,请告诉我。我已经找了很多次了,我被卡住了

产品是一种对象数据类型

编辑:

这是标题:

   ID    PRODUCT  M24      M23       M22     M21
0  123421  A  0.000000  0.000000  1.098612  0.0   
1  141840  A  0.693147  1.098612  0.000000  0.0   
2  212006  A  0.693147  0.000000  0.000000  0.0   
3  216097  A  1.098612  0.000000  0.000000  0.0   
4  219517  A  1.098612  0.693147  1.098612  0.0
编辑2:这里是打印(数据),A是产品。当我打印出来时,看起来A不属于产品类别

     DRID                         Product   M24   M23  M22  M21  M20  \
0           52250  A                     0.0   0.0  2.0  0.0  0.0   
1          141840  A                    1.0   2.0  0.0  0.0  0.0   
2          212006  A                      1.0   0.0  0.0  0.0  0.0   
3          216097  A                      2.0   0.0  0.0  0.0  0.0   

简短回答:
data.columns=[headerName]
更改为
data.columns=headerName

说明:设置
数据。列=[headerName]
时,列是多索引对象。因此,您的
log_df['Product']
是一个数据帧,对于数据帧,没有
str
属性

设置
data.columns=headerName
时,您的
log_df['Product']
是一个单独的列,您可以使用
str
属性

出于任何原因,如果您需要将数据保留为多索引对象,还有另一种解决方案:首先将
log\u df['Product']
转换为系列。之后,
str
属性可用

products = pd.Series(df.Product.values.flatten())
include_clique = products[products.str.contains("Product A")]

但是,我想第一个解决方案是您正在寻找的

您的代码应该可以工作。你确定你没有在某处做
log_-df.str
(而不是
log_-df['Product'].str
)?或者您可能有同名的重复索引<代码>产品(例如,两列同名)?@RafaelC是的,我是肯定的。昨天它还在工作,但现在它已经不工作了。你对
类型(log_df['Product'])
看到了什么?@RafaelC没有,没有重复的索引。@jpp pandas.core.frame.DataFrameI也在寻找相同的,这个答案对我帮助很大。谢谢分享。
products = pd.Series(df.Product.values.flatten())
include_clique = products[products.str.contains("Product A")]