np.哪里()相当于测向位置()

2024-06-14 13:43:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是在练习\学习熊猫,我正在使用Pokemon数据集 来自卡格尔。你知道吗

以下两行代码工作正常,并产生完全相同的结果:

df.loc[df['Type 1'] == 'Fire', 'Type 1'] = 'Flamer'

df['Type 1'] = np.where(df['Type 1'] == 'Fire', 'Flamer', df['Type 1'])

两者都将“Type 1”列中的值“Fire”替换为“Flamer”。你知道吗

但是,我正在尝试在多个列上复制相同的行为。 在下面的两行代码中,第一行工作,第二行失败。 还提供了精确错误:

df.loc[df['Total'] > 500, ['Generation', 'Legendary']] = 'TEST VALUE'

df[['Generation', 'Legendary']] = np.where(df['Total'] > 500, 'TEST VALUE', df[['Generation', 'Legendary']])
Traceback (most recent call last):
  File "C:/Users/Mark/PycharmProjects/main/main.py", line 152, in <module>
    df[['Generation', 'Legendary']] = np.where(df['Total'] > 500, 'TEST VALUE', df[['Generation', 'Legendary']])
ValueError: operands could not be broadcast together with shapes (800,) () (800,2)

我不明白那个错误想告诉我什么。你知道吗

我不能复制:测向位置[df['Total']>;500,['Generation','Legendary']]='TEST VALUE'使用np.哪里()? 你知道吗


Tags: 代码testdfvaluemaintype错误np
1条回答
网友
1楼 · 发布于 2024-06-14 13:43:05

正如@Divakar所指出的,我的语法是错误的。df['Total']>;500必须是:df[['Total']>;500在我的np.哪里()代码行。你知道吗

df.loc[df['Total'] > 500, ['Generation', 'Legendary']] = 'TEST VALUE'

成功复制者:

df[['Generation', 'Legendary']] = np.where(df[['Total']] > 500, 'TEST VALUE', df[['Generation', 'Legendary']])

然后我更进一步,给“世代”和“传奇”栏目赋予了它们自己独特的价值。你知道吗

以下两行代码也会生成相同的正确结果:

df.loc[df['Total'] > 500, ['Generation', 'Legendary']] = ['Test 1', 'Test 2']

df[['Generation', 'Legendary']] = np.where(df[['Total']] > 500, [['TEST 1', 'TEST 2']], df[['Generation', 'Legendary']])

相关问题 更多 >