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