我有一个数据框,如:
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
所以我需要根据列A
和B
(如nameA1=str(A)str(1)
)乘以两个额外的列,名称为A1
和B2
由两个。是否可以使用DataFrame.apply()
或其他结构来完成此操作?
我会跳过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的解决方案那样优雅。但无论出于什么原因,我都避免应用,除非我真的需要它。
您可以使用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,则被计为两个或两个以上的种族,不能被计