在DataFrame中插入系列

时间:2018-07-29 05:56:33

标签: python pandas dataframe

当我尝试使用一个系列构造一个DataFrame时,该系列将成为DataFrame中的列。

#name of series become column. All indexes of series become indexes
s= pd.Series({'a':1,'b':2,'c':3}, name='joe')
df=pd.DataFrame(s)
print(df)
     joe
a     1
b     2
c     3

但是,当提供系列列表时,所有系列都将成为DataFrame中的行。

# indexes become columns. series name become row name
s1= pd.Series({'a':1,'b':2,'c':3}, name='joe')
s2=pd.Series({'a':4,'b':5,'c':6}, name='john')
slist=[s1,s2]
df=pd.DataFrame(slist)
print(df)
     a    b   c
joe  1    2   3
john 4    5   6

为什么这种处理方式有所不同?为什么一个系列在DataFrame中始终不能成为行,而不管是提供列表还是单个系列。我确信Pandas开发人员不会一时兴起。

创建DataFrame之后,如果我尝试附加一个 系列,然后将其附加为行。

import pandas as pd
s1= pd.Series({'a':1,'b':2,'c':3}, name='s1')
s2=pd.Series({'a':4,'b':5,'c':6}, name='s2')
slist=[s1,s2]
df=pd.DataFrame(slist)
s=pd.Series({'b':1}, name='s3')
df=df.append(s)
print(df)

     a    b    c
s1  1.0  2.0  3.0
s2  4.0  5.0  6.0
s3  NaN  1.0  NaN

1 个答案:

答案 0 :(得分:0)

有所不同,因为在Series的第二个样本使用列表中,所以如果需要在第一个行中排行,则一个元素列表[s]

s = pd.Series({'a':1,'b':2}, name='joe')
#list of Series
df = pd.DataFrame([s])
print (df)
     a  b
joe  1  2

s1 = pd.Series({'a':1,'b':2}, name='joe')
s2 = pd.Series({'a':4,'b':5}, name='john')
#list of Series
df = pd.DataFrame([s1,s2])
print (df)
      a  b
joe   1  2
john  4  5

我认为一个Series被解析为一列,因为在DataFrame中,每一列都是Series,其中有一些dtype

DataFrame

  

DataFrame是二维标记的数据结构,具有可能不同类型的列。您可以将其视为电子表格或SQL表或Series对象的字典。