在python中通过函数修改pandas数据帧

2024-06-16 08:55:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过函数修改dataframe并返回修改后的dataframe。不知何故,它没有被反映出来。在下面的代码中,我将一个dataframe'ding'传递给函数'test',并创建一个新列'C',并返回修改后的dataframe。我希望测试df有3列,但只能看到两列。我们非常感谢您的帮助。在

s1 = pd.Series([1,3,5,6,8,10,1,1,1,1,1,1])
s2 = pd.Series([4,5,6,8,10,1,7,1,6,5,4,3])

ding=pd.DataFrame({'A':s1,'B':s2})

def test(ding):
    ding.C=ding.A+ding.B
    return ding

test_ding=test(ding)

Tags: 函数代码testdataframedfreturndefseries
2条回答

ding.C不存在,不能像属性一样被访问。 你需要把线路改成

ding['C']=ding.A+ding.B

您可以创建一个类似ding['A'] = blah的列,然后将其转换为DataFrame的属性。但你不能反过来。在

让我们试试这个:

s1 = pd.Series([1,3,5,6,8,10,1,1,1,1,1,1])
s2 = pd.Series([4,5,6,8,10,1,7,1,6,5,4,3])

ding=pd.DataFrame({'A':s1,'B':s2})

def test(ding):
    ding = ding.assign(C=ding.A+ding.B)
    return ding

test_ding=test(ding)

print(test_ding)

输出:

^{pr2}$

相关问题 更多 >