Python 如何创建一个将列传递给它的函数?

Python 如何创建一个将列传递给它的函数?,python,pandas,Python,Pandas,我正在导入一个如下所示的csv。可能的值为美元和净值 Type1、Type2、Type3 $,, 元,净额, 净值,$,$ 我现在把它放在熊猫数据框中,我想知道如何将$net映射到不同的值 我想将$->存款和净额映射到->净折旧 我正在将列传递到函数中 def directDeposit(var): for value in var: var.astype(str) if value == '$': var = value.map

我正在导入一个如下所示的csv。可能的值为美元和净值

Type1、Type2、Type3
$,,
元,净额,
净值,$,$

我现在把它放在熊猫数据框中,我想知道如何将$net映射到不同的值

我想将$->存款和净额映射到->净折旧

我正在将列传递到函数中

def directDeposit(var):
    for value in var: 
        var.astype(str)
        if value == '$':
            var = value.map({'$':'DEPOSIT'})

df['type1'] = directDeposit(df['type1'])`
因为csv中有三种可能的类型,我希望能够将我正在测试的类型传递到函数中,这样我就可以对所有3种类型重复它。我真的不知道接下来该怎么办

您可以这样做:

df['type1'] = df['type1'].map({'net': 'NET DEP', '$': 'DEPOSIT', '': "No value assigned"})
当您创建一个以熊猫系列作为输入的函数时,您不必对其进行循环。熊猫会为你做的

您可以使用以下方法:


如果我使用一行代码,是否有一种方法允许空白仍然被传递,而不是默认为“netdep”,如果有空白,那么我得到这个值错误。ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。查看我的新响应。应该可以。既然你喜欢使用map,那么它就是
df['type1'].map({'net':'net DEP','$':'dept'})。fillna(df['type1'])
df.replace({'$': 'DEPOSIT', 'net': 'NET DEP'})