当前位置: 首页 > 知识库问答 >
问题:

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

归俊杰
2023-03-14

我有一个数据框,如:

          A    B  
'2010-01-01'  10  20   
'2010-02-01'  20  30  
'2010-03-01'  30  10  

我需要为每个列应用一些函数,并在这个数据帧中创建具有特殊名称的新列。

               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

所以我需要根据列AB(如nameA1=str(A)str(1))乘以两个额外的列,名称为A1B2由两个。是否可以使用DataFrame.apply()或其他结构来完成此操作?

共有2个答案

贾建茗
2023-03-14

我会跳过apply方法,直接定义列。

import pandas as pd
df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})
for col in df.columns:
    df[col+"1"] = df[col] * 2

不像DSM的解决方案那样优雅。但无论出于什么原因,我都避免应用,除非我真的需要它。

嵇星海
2023-03-14

您可以使用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

如果您愿意,可以将df*2替换为df.apply(your_function)

 类似资料:
  • 例如,假设我有以下带有行的dataframe: 进一步假设我希望创建一个新列,作为两列和的函数。在下面的示例中,我将使用一个简单的函数。要应用该函数,可以使用或: 如果我将的实际大小增加到100万或更多,那么我会发现比快25倍或更多。 我如何使用Pandas的‘应用’功能多列? 如何将函数应用于Pandas数据帧的两列

  • 如何在熊猫身上做到这一点: 更新2:这个问题是在V0.11.0左右提出的。因此,许多问题和答案都不太相关。

  • 本文向大家介绍对pandas中apply函数的用法详解,包括了对pandas中apply函数的用法详解的使用技巧和注意事项,需要的朋友参考一下 最近在使用apply函数,总结一下用法。 apply函数可以对DataFrame对象进行操作,既可以作用于一行或者一列的元素,也可以作用于单个元素。 例:列元素 行元素 列 行 以上这篇对pandas中apply函数的用法详解就是小编分享给大家的全部内容了

  • 考虑下面的数据集存储在熊猫数据文件<代码> DFX < /代码>: 我有一个函数是: 现在,我想在中创建一个新列,其中包含计算出的z值 查看其他SO示例,我尝试了几个变体,包括: 返回错误。正确的方法是什么?

  • 我想将我的自定义函数(它使用if-else梯形)应用到数据帧每行中的这六列(,,,,,)。 我已经尝试了不同的方法从其他问题,但似乎仍然不能找到正确的答案,我的问题。关键的一点是,如果这个人被算作西班牙裔,他们就不能算作其他任何东西。即使他们在另一个种族栏中有一个“1”,他们仍然被算作西班牙裔,而不是两个或两个以上的种族。类似地,如果所有ERI列的总和大于1,则被计为两个或两个以上的种族,不能被计