在python里定义一个函数,参数可以是一个dataframe吗?

m
mysunnyday
楼主 (北美华人网)
在python里定义一个函数,参数可以是一个dataframe or datasets 吗?
s
surezzz
回复 1楼mysunnyday的帖子
Can be any objects
t
tidewater
在python里定义一个函数,参数可以是一个dataframe or datasets 吗?
mysunnyday 发表于 2020-07-13 17:46

可以 。。。
s
stfjfire
任何语言都可以吧,不仅是python
h
happymc
可以啊,都是object.
y
yuxing
可以啊
m
mysunnyday
为什么我单独运行一系列操作时没问题,一旦define一个function, 在主程序里调用它,就会说变量not defined
小蛇盘兔
回复 1楼mysunnyday的帖子
上code 很多人可以给你debug
t
tutumama87
回复 7楼mysunnyday的帖子
肯定可以的。如果你用df做input,你只要真的pass了就ok. 如果你想output,可以直接return. 你要弄清楚什么是形参,什么是实参。可以贴一段code上来看。
小魔女DoReMi
为什么我单独运行一系列操作时没问题,一旦define一个function, 在主程序里调用它,就会说变量not defined
mysunnyday 发表于 2020-07-13 18:12

作为参数的dataframe得和你函数里操作的一个名字。
m
mysunnyday
这是我的code, mylist里有一组变量名(string),  我给这些名字后面加了后缀2020, 2019, 2018, 表示不同年份,然后把这些年的各自的平均数据付给这些变量名。 dataset1 是2020年的月度数据,依次类推。如果在主程序里用,没问题. 但是定义成函数,然后在主程序里调用就说这些加后缀的变量名没有defined. dataset1[] 应该是dataset1[ [ i ] ], 不知道为什么没显示出来。
def myvalues(mylist, dataset1, dataset2, dataset3):
   for i in mylist:      i2020=i+''2020''      i2019=i+''2019''      i2018=i+''2018''
     exec("%s=%.3f" % (i2020,dataset1[].mean().iloc[0]))      exec("%s=%.3f" % (i2019,dataset2[].mean().iloc[0]))      exec("%s=%.3f" % (i2018,dataset3[].mean().iloc[0]))

t
tutumama87
回复 11楼mysunnyday的帖子
里面的i不清楚,和你前面的定义没关系啊。而且这种做法一开始就不是很恰当,所以我没细看。google apply.
m
mjnchen2014
完全没问题的,list of dataframe都行
O
Orangetabby
在python里定义一个函数,参数可以是一个dataframe or datasets 吗?
mysunnyday 发表于 2020-07-13 17:46

当然能