我正在使用multiIndex DataFrame并希望执行一些我正在努力的操作:
a)我想在不使用for循环
的情况下将几个操作应用于列表(按元素)b)我想提取我的DataFrame的索引值并比较这些值;之前必须将它们从object转换为int或float
c)我想比较DataFrame中的值(不使用for循环),并根据该比较的值从任一列中选择值
=============================================== =========================
[mysqld]
secure-file-priv = ""
答案 0 :(得分:2)
a)的部分答案:
df['Change'] = pd.concat([
pd.concat([
df.loc[:, 'Origin'] * (1 + increase_over_base_percent),
df.loc[:, 'Origin'] + increase_over_base_abs,
], axis=1).min(axis=1).clip(upper=abs_level),
df.loc[:, 'Origin'] + min_increase
], axis=1).max(axis=1)
想法是使用熊猫' min
和max
直接在Origin
系列上发挥作用(稍微改动一下,clip
使用abs_level
)。
由于pandas操作会保留索引,因此您可以直接将结果分配给列。
修改:如果您愿意,可以使用this question末尾解释的combine
方法。