python - 同一列中两行之间的最大值
问题描述
我想添加一个新列“B1”,它将是“b”的当前值和前一个值之间的最大值。我添加了 max 函数,但它不起作用:
data = {
'a' : [85, 75, 85, 33, 99, 45],
'b' : [35, 45, 83, 88, 56, 20],
'c' : [51, 61, 45, 67, 39, 30],
'd' : [67, 88, 5, 34, 57, 69]
}
df = pd.DataFrame(data)
df['A1'] = df['a'].shift(+1)
df['B1'] = max(df['b'], df['b'].shift(+1))
df.head(10)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
谢谢您的帮助
解决方案
使用dataframe.max(axis =1)
:
data = {
'a' : [85, 75, 85, 33, 99, 45],
'b' : [35, 45, 83, 88, 56, 20],
'c' : [51, 61, 45, 67, 39, 30],
'd' : [67, 88, 5, 34, 57, 69]
}
df = pd.DataFrame(data)
df['A1'] = df['a'].shift(+1)
# df['B1'] = max(df['b'], df['b'].shift(+1))
df['b_shifted']=df["b"].shift()
df["B1"] = df[["b","b_shifted"]].max(axis=1)
df.drop(columns = ["b_shifted"], inplace = True)
推荐阅读
- gitlab - Gitlab中的自动数据库重新索引不起作用
- javascript - Javascript + Vue window.open 被阻止弹出
- php - 在条件下用逗号或“&”符号分隔值
- ruby-on-rails - 使用 JSONAPI 和 Rails 渲染数组
- javascript - React JS:状态改变时返回()中的HTML不会重新加载?
- python - 将我的 Django/Python 应用程序从 App Engine 标准环境转换为灵活环境
- excel - 基于excel中列条件的平均值
- javascript - 如何将 fetch API 请求中的数据存储到全局变量中?
- python - 如何针对 db2 数据库优化 SQL/Python 选择查询?
- .net-core - 包括来自 src 目录之外的文件