Python:For循环在数据框中传递2个字段

问题描述

有没有一种方法用户可以通过该方法将2个字段从单个数据帧传递到嵌套的for循环Python中。一个字段正在由功能操作,第二个字段仅作为ID通过?

如果我仅使用列表,这些功能就可以工作,但无法弄清楚如何传递ID。

我已经尝试过lambdas函数,但是我无法在限制内使用它们-尽可能避免使用它们。

# Below code works !!!!

import pandas as pd

# there are 2 fields in dataframe_a
# dataframe_a
#     field_x -> "AN ID FIELD"
#     field_y -> "A LIST OF LISTS"
field_x field_y
101     (10.2548,3.1415)
102     (35.7895,2.812)


# dataframe_b
#     field_p -> "AN ID FIELD"
#     field_q -> "A DIFFERENT LIST OF LISTS"
field_p field_q
1254    (65.784,0.6978436)
3657    (84.5687,103.587)


cols = ['key','grain','derived_field','input_from_first_list','input_from_second_list']


# function takes inputs of list of lists
def super_fucntion(list_a,list_b):
    new_df = pd.DataFrame(columns=cols)
    for k,object_1_lst_a in enumerate(list_a,start=1):
        for num,object_1_lst_b in enumerate(list_b,start=1):
            output_of_some_function = some_function(object_1_lst_a,object_1_lst_b)
            new_df = new_df.append({'key':k,'grain':num,'derived_field':output_of_some_function,'input_from_first_list':object_1_lst_a,'input_from_second_list':object_1_lst_b},ignore_index=True)
    return new_df


my_new_dataframe = (super_fucntion(dataframe_a['field_y'],dataframe_b['field_q']))

########################################  BREAK ########################################

# What is hoped for is an adaptation on wha is described above

import pandas as pd

# there are 2 fields in dataframe_a
# dataframe_a
#     field_x -> "AN ID FIELD"
#     field_y -> "A LIST OF LISTS"
field_x field_y
101     (10.2548,'id','input_from_second_list']


def super_fucntion(df_id_field,list_a,'id':df_id_field,ignore_index=True)
    return new_df


my_new_dataframe = (super_fucntion(dataframe_a['field_x'],dataframe_a['field_y'],dataframe_b['field_q']))


# my_new_dataframe has outputs similar to
field_x field_y             field_p field_q             derived_field
101     (10.2548,3.1415)   1254    (65.784,0.6978436) field_x_1 * field_y_1
102     (35.7895,2.812)    3657    (84.5687,103.587)  field_x_2 * field_y_2
...
...
...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...