python - 创建新的Dataframe数据切片问题

标签 python pandas finance

这是我的代码片段。该代码有效,但是我收到以下错误:

“正在尝试在 DataFrame 切片的副本上设置值”

我猜测这是由于某些已弃用的语法...

new_data['mon_fri'] = 0
for i in range(0,len(new_data)):
    if (new_data['Dayofweek'][i] == 0 or new_data['Dayofweek'][i] == 4):
        new_data['mon_fri'][i] = 1
    else:
        new_data['mon_fri'][i] = 0

最佳答案

如果存在矢量化替代方案,请不要在 pandas 中循环,这里可以使用 isin对于 bool 掩码并转换为整数,用于 True/False1/0 映射:

new_data['mon_fri'] = new_data['Dayofweek'].isin([0,4]).astype(int)

或者使用numpy.where :

new_data['mon_fri'] = np.where(new_data['Dayofweek'].isin([0,4]), 1, 0)

关于python - 创建新的Dataframe数据切片问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54842044/

相关文章:

python - Selenium 只点击一次链接,再次调用 click() 返回错误

python - 根据条件对 Pandas 系列进行分组

python - 使用 HDFStore 压缩数据

python - 元组列表到二进制表中?

python - Pandas 插值在 0.10 版本中发生了变化?

python - 是否可以在打印之前清理冗长的 python 正则表达式?

python - 解析python中的可变行

api - 构建一个基本的会计应用程序

javascript - JavaScript 中的精确财务计算。陷阱是什么?

python - 检测 Python Pandas DataFrame 连续行中的错误数据