【发布时间】:2015-08-04 00:38:21
【问题描述】:
要将多个变量传递给普通的 python 函数,您可以编写如下内容:
def a_function(date,string,float):
do something....
convert string to int,
date = date + (float * int) days
return date
当使用 Pandas DataFrames 时,我知道您可以根据其中的内容创建一个新列,如下所示:
df['new_col']) = df['column_A'].map(a_function)
# This might return the year from a date column
# return date.year
我想知道的是,您可以将多条数据传递给单个函数(如上面的第一个示例所示),您可以在创建新的 pandas DataFrame 列时使用多个列吗?
例如将日期 Y - M - D 的三个独立部分组合到一个字段中。
df['whole_date']) = df['Year','Month','Day'].map(a_function)
我在以下测试中遇到一个关键错误。
def combine(one,two,three):
return one + two + three
df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4],'c': [4,5,6]})
df['d'] = df['a','b','b'].map(combine)
有没有一种方法可以使用.map 或其他将三列作为输入并返回一列的方法在 pandas DataFrame 中创建一个新列?
-> 示例输入:1, 2, 3
-> 示例输出:1*2*3
同样,还有一种方法可以让函数接受一个参数、一个日期并返回三个新的 pandas DataFrame 列;一个代表年、月和日?
【问题讨论】: