我尝试将一个函数应用到Pandas数据框,这样的函数需要两个np.数组作为输入,它使用定义良好的模型来拟合它们。
关键是我不能从所选列开始应用这个函数,因为它们的“行”包含从JSON文件中读取的列表,而不是np. array。
现在,我尝试了不同的解决方案:
#Here is where I discover the problem
train_df['result'] = train_df.apply(my_function(train_df['col1'],train_df['col2']))
#so I've tried to cast the Series before passing them to the function in both these ways:
X_col1_casted = trai_df['col1'].dtype(np.array)
X_col2_casted = trai_df['col2'].dtype(np.array)
字符串
坏了
X_col1_casted = trai_df['col1'].astype(np.array)
X_col2_casted = trai_df['col2'].astype(np.array)
型
坏了
X_col1_casted = trai_df['col1'].dtype(np.array)
X_col2_casted = trai_df['col2'].dtype(np.array)
型
不起作用。
我现在想做的是一个很长的过程,比如:
从未转换的column-series开始,将它们转换为list(),对它们进行迭代,将函数应用于np.array()的单个元素,并将结果追加到一个临时列表中。完成后,我将把这个列表转换为一个新的列。(显然,我不知道它是否有效)
你们谁知道怎么帮我?
编辑:我补充一个例子来说明:
该函数假设有两个np. arrays作为输入。现在它有两个列表,因为它们是从一个json文件中检索到的。情况是这样的:
col1 col2 result
[1,2,3] [4,5,6] [5,7,9]
[0,0,0] [1,2,3] [1,2,3]
型
很明显,这个函数不是求和函数,而是一个自身函数。假设这个求和函数只能从数组开始,而不能从表开始,我该怎么办?
Thanks in advance
2条答案
按热度按时间vsmadaxz1#
使用
apply
将每个元素转换为它的等效数组:字符串
数据类型:
型
的数据
ma8fv8wu2#
您可以在列表顶部应用
pd.Series
。例如,字符串