使用apply()函数在pandas.DataFrame中创建新列

Vit*_*han 3 python pandas

我有一个像pandas DataFrame:

          A    B  
'2010-01-01'  10  20   
'2010-02-01'  20  30  
'2010-03-01'  30  10  
Run Code Online (Sandbox Code Playgroud)

我需要为每个列应用一些函数,并在此DataFrame中使用特殊名称创建新列.

               A   B A1 B1  
'2010-01-01'  10  20 20 40  
'2010-02-01'  20  30 40 60  
'2010-03-01'  30  10 60 20
Run Code Online (Sandbox Code Playgroud)

所以我需要创建两个带有名称的列,A1B2基于列AB(如名称A1 = str(A) + str(1))乘以2.是否可以使用DataFrame.apply()或其他结构?

DSM*_*DSM 8

您可以使用join组合:

>>> import pandas as pd
>>> df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})
>>> df
    A   B
0  10  20
1  20  30
2  30  10
>>> df * 2
    A   B
0  20  40
1  40  60
2  60  20
>>> df.join(df*2, rsuffix='1')
    A   B  A1  B1
0  10  20  20  40
1  20  30  40  60
2  30  10  60  20
Run Code Online (Sandbox Code Playgroud)

在那里你可以替换df*2使用df.apply(your_function),如果你喜欢.