从 python 中的函数输出创建数据框

Create a datarame from outputs of a function in python

我想根据 python 函数的所有输出制作数据框。所以我想创建一个数据集作为 df。有什么想法吗?

import pandas as pd

def test(input):
    kl = len(input)
    return kl

test("kilo")
test("pound")

# initialize list of lists
data = [[4], [5]]
  
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ["Name"])

假设此输入和函数:

words = [['abc', 'd'], ['efgh', '']]

def test(input):
    kl = len(input)
    return kl

您可以创建 DataFrame:

df = pd.DataFrame(words)

      0  1
0   abc  d
1  efgh   

然后 applymap 你的函数(警告:applymap 很慢,在这种特殊情况下(获取长度),有更快的矢量方法):

df2 = df.applymap(test)

   0  1
0  3  1
1  4  0

或者 运行 在创建 DataFrame 之前 python 中的函数:

df = pd.DataFrame([[test(x) for x in l] for l in words])

   0  1
0  3  1
1  4  0

一个相关的方法是重复调用你的函数来创建一个列表,然后从中形成数据框:

导入 pandas 作为 pd 单词 = ['kilo', 'pound', 'ton'] 定义测试(输入): kl = len(输入) return 千里 data = [] # 创建空列表 词条输入: data.append(测试(条目))

df = pd.DataFrame(数据,列 = ['names'])