【发布时间】:2021-06-22 17:03:29
【问题描述】:
我正在尝试过滤掉包含产品列表的数据框。但是,当我运行代码时,我得到了 pandas - 'dataframe' 对象没有属性 'str' 错误。
这是代码行:
include_clique = log_df.loc[log_df['Product'].str.contains("Product A")]
如果有人有任何建议,请告诉我。我已经搜索了很多次,我很困惑。
Product 是一个对象数据类型。
编辑:
import __future__
import os
import pandas as pd
import numpy as np
import tensorflow as tf
import math
data = pd.read_csv("FILE.csv", header = None)
headerName=["DRID","Product","M24","M23","M22","M21","M20","M19","M18","M17","M16","M15","M14","M13","M12","M11","M10","M9","M8","M7","M6","M5","M4","M3","M2","M1"]
cliques = [(Confidential)]
data.columns=[headerName]
log_df = data
log_df = np.log(1+data[["M24","M23","M22","M21","M20","M19","M18","M17","M16","M15","M14","M13","M12","M11","M10","M9","M8","M7","M6","M5","M4","M3","M2","M1"]])
copy = data[["DRID","Product"]].copy()
log_df = copy.join(log_df)
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
【问题讨论】:
-
您的代码应该可以工作。你确定你没有在某处做
log_df.str(而不是log_df['Product'].str)吗?或者,您可能有 重复索引,名称为Product(例如,两列同名)? -
@RafaelC 是的,我很肯定。昨天还可以,现在不行了。
-
你对
type(log_df['Product'])有什么看法? -
@RafaelC 不,没有重复的索引。
-
@jpp pandas.core.frame.DataFrame