【发布时间】:2019-03-02 05:46:35
【问题描述】:
我有一个包含许多列的大型数据框,但我只特别关注一列。
这个例子是为了简单起见。我定义了一个新列 col2,如果满足第一列中的条件,它将存储一个布尔值。
raw_data = { 'col1': [[0, 2, 3, 4],[6, 7, 1000, 40, 20],[4, 20, 100]]}
df = pd.DataFrame(raw_data, columns = ['col1'])
df
df['col2'] = 'default'
df
col1 col2
row1 [2,3,44,89.6,...] default
row2 [10,4,33.3,1.11,...] default
我需要对 col1 进行一些计算,如果满足某些条件,则同一行中 col2 中的默认值变为 True,否则为 False。
简化计算
计算列表中的最大值、列表的长度和平均值。
我在一个函数中进行这些计算,然后我引入另一个函数来尝试执行评估部分。
例如,如果最大值 > 10,如果列表长度 > 5,如果平均值 > 25,则将 col2 中的默认值设为 True。
我相信我必须使用 .apply() 函数。
df['col2'] = df.apply (lambda row: my_functions (row),axis=1)
所需输出
col1 col2
row1 [2,3,44,89.6,...] True
row2 [10,4,33.3,1.11,...] False
我被困在这里,因为我不知道如何进行一些计算并遍历整个列并评估这些计算。
谢谢!
【问题讨论】:
标签: python pandas dataframe apply