[英]Pandas: How to take values in a DataFrame column and put them all in the same row
[英]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
只要u
、 v
和w
的长度与您的数据帧相同,您就应该能够直接从解压缩的变量中分配它。
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.