pandas如何把Series组合成DataFrame呢?这个要分情况而定,可以用pd.DataFrame()方式组合,也可以用concat函数。 pd.DataFrame()的方式可以让Series的索引变成DataFrame的行索引或者列索引。
1、Series索引变成行索引
# -*- coding: utf-8 -*-
import pandas as pd
s1 = pd.Series([1,2,3],index=['a','b','c'],name='A')
s2 = pd.Series([11,22,33],index=['a','b','c'],name= 'B')
s3 = pd.Series([1111,222,333],index=['a','b','c'],name = 'C')
df = pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3}) print(df)
A B C
a 1 11 1111
b 2 22 222
c 3 33 333
2、Series索引变成列索引
# -*- coding: utf-8 -*-
import pandas as pd
s1 = pd.Series([1,2,3],index=['a','b','c'],name='A')
s2 = pd.Series([11,22,33],index=['a','b','c'],name= 'B')
s3 = pd.Series([1111,222,333],index=['a','b','c'],name = 'C')
df = pd.DataFrame([s1,s2,s3])
print(df)
a b c
A 1 2 3
B 11 22 33
C 1111 222 333
3、concat函数
# -*- coding: utf-8 -*-
import pandas as pd
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'],name='A')
s2 = pd.Series([11, 22, 33], index=['a', 'b', 'c'],name='B')
s3 = pd.Series([1111, 222, 333], index=['a', 'b', 'c'],name='C') df = pd.DataFrame([s1, s2, s3])
# 左右合并
df = pd.concat([s1,s2,s3],axis=1)
#使用0值表示沿着每一列或行标签/索引值向下执行方法
#使用1值表示沿着每一行或者列标签横向执行对应的方法
print(df)
print('------------')
# 上下合并
df = pd.concat([s1,s2,s3])
print(df)
A B C
a 1 11 1111
b 2 22 222
c 3 33 333
------------
a 1
b 2
c 3
a 11
b 22
c 33
a 1111
b 222
c 333
dtype: int64