[英]How to join a Series to a DataFrame?
有没有办法直接将系列加入DataFrame?
连接将位于数据帧的字段和系列的索引上。
我发现的唯一方法是首先将系列转换为数据帧,如下面的代码所示。
import numpy as np
import pandas as pd
df = pd.DataFrame()
df['a'] = np.arange(0, 4)
df['b'] = np.arange(100, 104)
s = pd.Series(data=np.arange(100, 103))
# this doesn't work
# myjoin = pd.merge(df, s, how='left', left_on='a', right_index=True)
# this does
s = s.reset_index()
# s becomes a Dataframe
# note you cannot reset the index of a series inplace
myjoin = pd.merge(df, s, how='left', left_on='a', right_on='index')
print myjoin
我想http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html可能有所帮助。
例如内/外连接。
pd.concat((df,s), axis=1)
Out[26]:
a b 0
0 0 100 100
1 1 101 101
2 2 102 102
3 3 103 NaN
In [27]: pd.concat((df,s), axis=1, join='inner')
Out[27]:
a b 0
0 0 100 100
1 1 101 101
2 2 102 102
尝试concat():
import numpy as np
import pandas as pd
df= pd.DataFrame()
df['a']= np.arange(0,4)
df['b']= np.arange(100,104)
s =pd.Series(data = np.arange(100,103))
new_df = pd.concat((df, s), axis=1)
print new_df
这打印:
a b 0
0 0 100 100
1 1 101 101
2 2 102 102
3 3 103 NaN
这是一个非常晚的答案,但对我来说有用的是使用您想在系列中检索的列构建数据框,将此系列命名为您需要的索引,将系列追加到数据框中(如果您在系列中有补充元素)它们被添加到数据帧中,在某些应用程序中可能很方便),然后通过此索引将最终数据帧连接到要扩展的原始数据帧。 同意它不是直接的,但如果你有很多系列,那么这仍然是最方便的方式,而不是先在数据帧中转换每个系列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.