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

需要分配df的结果。应用于两个新列[重复]

金子平
2023-03-14

全部的

我有一个返回两个值的函数。一个是列表,另一个是双精度。

我想使用这样的东西在我的df中创建两个新列,并使用。应用程序逐行填充这些列。

def f(a_list):
     #do some stuff to the list
     if(stuff):
          make_new_stuff_happen         

     #return results of stuff
     return new_list, a_double



def main():
     df['new_col1'], df['new_col2'] = df.apply(lambda x: f(x['some_col']))

谢谢你能提供的帮助。

共有1个答案

桓深
2023-03-14

几点注意事项:

  • 我认为在Python中,double是指float
  • 即使是举个例子,我也会给你的函数命名

也许这个答案会有帮助:

如果这是您正在使用的原始数据帧:

col_1  |  col_2  |  col_3
-------------------------
  1    |    3    |   3
  2    |    3    |   4
  3    |    1    |   1

你可以有这样一个函数:

def transform_into_two_columns(original_val_from_row):
    
    # do some stuff to the list:
    
    # example 1: multiply each row by 2 & save output to new list (this would be "new_list" in your question)
    original_val_times_2 = original_val_from_row*2
    
    # example 2: sum all values in list/column (this would be "a_double" in your question)
    original_val_plus_2 = original_val_from_row+2.1

    return original_val_times_2, original_val_plus_2

然后,您可以将该函数的输出保存到列表中:

list_of_tuples = df['col_2'].apply(lambda x: transform_into_two_columns(x)).to_list()
df[['NEW_col_4', 'NEW_col_5']] = pd.DataFrame(list_of_tuples, index=df.index)

您的新数据框将如下所示:

col_1  |  col_2  |  col_3  | NEW_col_4  | NEW_col_5
---------------------------------------------------
  1    |    3    |   3     |     6      |    5.1   
  2    |    3    |   4     |     6      |    5.1
  3    |    1    |   1     |     2      |    3.1
 类似资料:
  • 我有一个pandas数据框,其中包含列和。我想从他们那里得到和。中有一个函数,名为,用于执行此操作。它接收和,并给出。我是这样做的: 我想定义一个函数并应用一次以节省时间。我看了看这里,这里和这里,但是我找不到一种方法来使用一个函数制作两列。谢谢。

  • 我有以下,其值是字典: 我希望获得所需的输出: 我怎样才能把字典分成单独的列呢? 我见过使用函数拆分字符串的列,但不确定如何将其应用于字典作为值的情况。

  • 我在Scala中的中转置值时遇到问题。我的初始如下所示: 和是类型

  • 我有这个df称为职位: 我有一份清单: 我正在尝试在股票行情器上创建一个新的DF排序。如果代码相同,那么这些值将进入df,另一个值将进入另一个。 我刚刚尝试过如何做到这一点,我不确定我是否走上了正确的道路。。 这怎么可能呢?在新的DF中,我想带上所有的专栏。 谢谢:)

  • 我想用另一个DF的行中的名称替换DF的一些列名称 如何用df2中的“狗”和“猫”替换df1中的“T1”和“T2”?

  • 背景:我的Tkinter应用程序中有一个小功能,它将列表中的两个随机值随机化,并将它们打印到GUI。但我正努力用随机值获得正确的形象(团队标志)。 目标:随机选择团队名称(来自28个团队的列表),GUI也应该显示团队徽标。按“随机”按钮,生成Team1 我做过研究:我有时间回答这个问题,但我想不出来。这个骰子游戏可以做到这一点,但我需要两个值而不是一个值,而且我的列表中充满了字符串。 例子:htt