繁体   English   中英

如何从函数中获取返回值并将它们放在数据框列上

[英]How to take returned values from a function and put them on a dataframe column

这是我用来获取一些值的函数的起始值和返回值:

def gal_uvw(distance=None, lsr=None, ra=None, dec=None, pmra=None, pmdec=None, vrad=None, plx=None):

    return (u,v,w)

我使用数据帧(df)的列值作为这个函数的变量,并得到了返回的 u、v 和 w 值的列表。

def gal_uvw(distance=None, lsr=None, ra=df['Col1'], dec=df['Col2'],
            pmra=df['Col3'], pmdec=df['Col4'], vrad=df['Col5'], plx=None)

Output:(1       0.076253
        2      43.303953
              ...
        506   -51.194802

        1      -8.192123
        2     -47.063398
              ...
        506   -22.488182)

我如何获得这些 u、v 和 w 值列表并将它们添加到我使用的 df 中以运行该函数? 每组数字将是一个新列,因此我将拥有:

df['U']=u
df['V']=v
df['W']=w

只要uvw的长度与您的数据帧相同,您就应该能够直接从解压缩的变量中分配它。

import pandas as pd

def foo():
    return (0, 9, 8, 7, 6), (0, 91, 81, 71, 61), (0, 92, 82, 72, 62)

df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})

u, v, w = foo()

df['u'] = u
df['v'] = v
df['w'] = w

print(df)

'''
Output:

   A  u   v   w
0  1  0   0   0
1  2  9  91  92
2  3  8  81  82
3  4  7  71  72
4  5  6  61  62

'''

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM