假设我们必须进行序列化:
s1 = pd.Series('a', index=[1,2,3], name="Column One")
s2 = pd.Series('b', index=[1,2,3], name="Column Two")
从文档(here中可以看到,从大量Serires对象创建DataFrame的建议方法是使用常见的python字典构造,例如:
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
在这种情况下,我有一个合理的问题,即使它不能像以下那样用于构造中,我们需要name
系列中的什么目标?
df = pd.DataFrame(s1, s2)
带有结果数据框:
Column Column
one two
+---+---------+---------+
| 1 | a | b |
| 2 | ... | ... |
| |
答案 0 :(得分:1)
您可以使用字典理解,以系列名称作为键,并以系列作为值,然后形成一个数据框:
输入:
d = {s.name: s for s in [s1,s2]}
df = pd.DataFrame(d)
输出:
Column One Column Two
1 a b
2 a b
3 a b
答案 1 :(得分:0)
转置您的数据框。
df=df.T
完成
答案 2 :(得分:0)
从系列列表创建数据框的一种更简洁的方法是通过pd.concat
沿axis=1
,即列。这将对您的输入列表中的每个系列使用name
属性:
s1 = pd.Series('a', index=[1,2,3], name="Column One")
s2 = pd.Series('b', index=[1,2,3], name="Column Two")
df = pd.concat([s1, s2], axis=1)
print(df)
Column One Column Two
1 a b
2 a b
3 a b