问题描述
有没有一种方法,用户可以通过该方法将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 (将#修改为@)