pandas 如何使用字典值一次性分配多个列?

np8igboo  于 2022-12-21  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个panda Dataframe 和一个返回字典的函数。我想将函数的结果分配给多个列。但问题是,函数返回的字典只想将值保存到列中。我可以通过只发送函数中的值来实现这一点。但是,我想从接收方解决if。
示例代码:

import pandas as pd

data = {
  "col1": [420, 380, 390],
  "col2": [50, 40, 45]
}

#load data into a DataFrame object:
df = pd.DataFrame(data)

下面的函数返回一个字典(可以通过返回return fun_dict. values()来求解,但是我想发送字典并从调用端求解)

def fun_function(my_input):
    fun_dict = {}
    
    fun_dict["num1"] = str(my_input)[0]
    fun_dict["num2"]  = str(my_input)[1]
    
    return fun_dict

驱动侧/接收侧:

df["first_num_col"], df["last_num_col"] = zip(*df["col2"].map(fun_function))

使用这段代码,我只得到了每一列下的键值。任何帮助/建议都是感激的。谢谢。

1tuwyuhd

1tuwyuhd1#

我能想到的唯一方法是在客户端执行d.values()

df["first_num_col"], df["last_num_col"] = zip(*[d.values() for d in df["col2"].map(fun_function)])

相关问题