Python 3.x 如何对Pandas系列进行元素操作以获得新的数据帧
我有一系列的数字,比如说Python 3.x 如何对Pandas系列进行元素操作以获得新的数据帧,python-3.x,pandas,Python 3.x,Pandas,我有一系列的数字,比如说[1,2,3,4,5]。我想要一种高效的方法来创建一个dataframe,其中通过函数传递的每个series元素组合的结果都是相应的dataframe元素 假设函数是 def f1(a,b): return a*b + 5 然后我希望数据帧如下所示,每个单元格都是函数调用的结果,并结合了series元素 col_1___2___3___4___5__ row| 1|6, 7, 8, 9, 10 2|7, 9, 11, 13, 15 3|8,
[1,2,3,4,5]
。我想要一种高效的方法来创建一个dataframe,其中通过函数传递的每个series元素组合的结果都是相应的dataframe元素
假设函数是
def f1(a,b):
return a*b + 5
然后我希望数据帧如下所示,每个单元格都是函数调用的结果,并结合了series元素
col_1___2___3___4___5__
row|
1|6, 7, 8, 9, 10
2|7, 9, 11, 13, 15
3|8, 11, 14, 17, 20
4|9, 13, 17, 21, 25
5|10, 15, 20, 25, 30
该系列有时可以多达500个元素
提前谢谢 您可以执行以下操作:
def f1(a、b):
返回a*b+5
s=[1,2,3,4,5]
df=pd.DataFrame(列=s,索引=s)
df=df.apply(λx:f1(x.name,x.index))
输出:
12345
1 6 7 8 9 10
2 7 9 11 13 15
3 8 11 14 17 20
4 9 13 17 21 25
5 10 15 20 25 30
使用熊猫
import pandas as pd
#create pandas dataframe with one column "col_" with data.
df = pd.DataFrame({'col_':list(range(1, 6))})
print(df['col_']) #this is data you provided above.
#Create a new column based on function.
b=1 #constant
df['1_'] = df['col_'].apply(lambda x: x*b+5)
#and another column
df['2_'] = df['col_'].apply(lambda x: x*(b+b)+5)