Python 用条件填充panda列

Python 用条件填充panda列,python,pandas,Python,Pandas,我试图用条件填充C列:如果B列的值为无,则用a列的值填充C列。如果B列不是无,则用值3填充C列 我试过: import pandas df = pandas.DataFrame([{'A': 5, 'B': None, 'C': ''}, {'A': 2, 'B': "foo", 'C': ''}, {'A': 6, 'B': "foo", 'C': ''}, {'A': 1, 'B

我试图用条件填充C列:如果B列的值为无,则用a列的值填充C列。如果B列不是无,则用值3填充C列

我试过:

import pandas
df = pandas.DataFrame([{'A': 5, 'B': None, 'C': ''},
                   {'A': 2, 'B': "foo", 'C': ''},
                   {'A': 6, 'B': "foo", 'C': ''},
                   {'A': 1, 'B': None, 'C': ''}])

df["C"] = df["B"].apply(lambda x: 3 if (x != None) else df["A"])
df = pandas.DataFrame([{'A': 5, 'B': None, 'C': 5},
                   {'A': 2, 'B': "foo", 'C': 3},
                   {'A': 6, 'B': "foo", 'C': 3},
                   {'A': 1, 'B': None, 'C': 1}])
我的输出:

TypeError:类型为“int”的对象没有len()

我知道问题是df[“A”],但我不知道如何解决它

输出良好:

import pandas
df = pandas.DataFrame([{'A': 5, 'B': None, 'C': ''},
                   {'A': 2, 'B': "foo", 'C': ''},
                   {'A': 6, 'B': "foo", 'C': ''},
                   {'A': 1, 'B': None, 'C': ''}])

df["C"] = df["B"].apply(lambda x: 3 if (x != None) else df["A"])
df = pandas.DataFrame([{'A': 5, 'B': None, 'C': 5},
                   {'A': 2, 'B': "foo", 'C': 3},
                   {'A': 6, 'B': "foo", 'C': 3},
                   {'A': 1, 'B': None, 'C': 1}])
通过以下方式与测试
None
一起使用:

通过以下方式与测试
None
一起使用: