gpt4 book ai didi

python - 使用 np.where 过滤行的问题

转载 作者:行者123 更新时间:2023-12-04 10:03:12 27 4
gpt4 key购买 nike

我正在尝试将值分配给验证条件的行( True/False )。

for i in range(0,3):

new_dataset=df[str(i)][df[str(i)]["Current Amount"] != "3m"]
for i in range(0,3):
df[i]['Value'] = np.where(df[i]['Amount']== True, 100, 50)

哪里 i可以跨越 03 . Value是我想创建的新列; Amount是原始数据框中已存在的列。在第一部分中,我创建了新的数据框过滤当前数量等于 300 万的行。

但是我收到以下错误:
   /anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
after removing the cwd from sys.path.

我已尝试按照本文中建议的步骤操作: How to deal with SettingWithCopyWarning in Pandas? ,但似乎我仍然不清楚如何解决这个问题。

你能帮我解决这个问题吗?我真的很感激。

最佳答案

为什么不使用没有 [i] 的解决方案并通过 True 进行比较如果列是 bool 值?

df['Value'] = np.where(df['Amount'], 100, 50)

编辑:这是必要的 DataFrame.copy :
new_dataset=df[str(i)][df[str(i)]["Current Amount"] != "3m"].copy()

关于python - 使用 np.where 过滤行的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61729339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com