【发布时间】:2023-03-09 00:21:01
【问题描述】:
我对 Pandas 很陌生,我一直在尝试构建一个 if 语句函数以应用于数据框列。
我需要一个函数来查找“流入类型”列中的每一行,然后根据字母的类型在名为“现金流”的新列上分配正数或负数。
df = {'type of inflow':['I', 'D', 'I', 'D', 'R', 'D'], 'historic value':[100, 300, 200, 700, 400, 600]}
def cash_flow(row):
if row['type of inflow'] == "I" or row['type of inflow'] == "D":
row['type of inflow'] = row['historic value'] * -1
elif row['type of inflow'] == "R":
row['cash flow'] = row['historic value'] * 1
提前致谢
【问题讨论】:
-
看看这个链接:stackoverflow.com/questions/43391591/…。根据您的情况,您可以使用 numpy.where 或 numpy.select。尽量避免循环遍历每一行并使用矢量化方法。
-
对于第一个if条件,
row['type of inflow'] = row['historic value'] * -1应该是row['cash flow'] = row['historic value'] * -1吗? -
Stack Overflow 不能替代指南、教程或文档。如果您正在学习使用新库,您的第一反应应该始终是阅读文档。 pandas.pydata.org/pandas-docs/stable