我在尝试选择列的子集并在其上运行unique
时遇到问题。
来源数据:
df_raw = pd.read_csv('data/master.csv', nrows=10000)
df_raw.shape()
产地:
(10000, 86)
流程数据:
df = df_raw[['A','B','C']]
df.shape()
产地:
(10000, 3)
此外,做:
df_raw.head()
df.head()
生成正确的行和列列表。
然而,
print('RAW:',sorted(df_raw['A'].unique()))
完美运作
虽然:
print('PROCESSED:',sorted(df['A'].unique()))
产生
AttributeError: 'DataFrame' object has no attribute 'unique'
我做错了什么?如果形状和头部输出正是我想要的,我很困惑为什么我的处理数据集会抛出错误。我确实在SO上阅读了Pandas 'DataFrame' object has no attribute 'unique',它正确地说明了我正在做的事情就是应用于列的唯一需要。
答案 0 :(得分:1)
这是一个重复列的情况。鉴于这是专有数据,我在这个问题中将其抽象为'A','B','C',因此掩盖了问题。 (实际数据集有86列,我在我的子集中两次重复了其中一列,并试图在其中做一个独特的)
我的问题是:
df_raw = pd.read_csv('data/master.csv', nrows=10000)
df = df_raw[['A','B','C', 'A']] # <-- I did not realize I had duplicated A later.
在'A'
上执行unique
时会出现问题
答案 1 :(得分:0)
从整个数据框中提取基于列ID的数据子集。可行!
socialite driver