如何将系列列表传递给 Pandas DataFrame?

2024-03-28

我意识到 Dataframe 采用 {'series_name':Series(data, index)} 的映射。但是,即使该映射是 OrderedDict(),它也会自动对该映射进行排序。

有没有一种简单的方法来传递 Series(data, index, name=name) 列表,以便保留顺序并且列名称是 series.name?如果所有系列的所有索引都相同,是否有简单的方法?

我通常通过传递 series.values 的 numpy column_stack 并指定列名称来完成此操作。然而,这很丑陋,在这种特殊情况下,数据是字符串而不是浮点数。


你可以使用pandas.concat:

import pandas as pd
from pandas.util.testing import rands

data = [pd.Series([rands(4) for j in range(6)],
                  index=pd.date_range('1/1/2000', periods=6),
                  name='col'+str(i)) for i in range(4)]

df = pd.concat(data, axis=1, keys=[s.name for s in data])
print(df)

yields

            col0  col1  col2  col3
2000-01-01  GqcN  Lwlj  Km7b  XfaA
2000-01-02  lhNC  nlSm  jCYu  XLVb
2000-01-03  sSRz  PFby  C1o5  0BJe
2000-01-04  khZb  Ny9p  crUY  LNmc
2000-01-05  hmLp  4rVp  xF2P  OmD9
2000-01-06  giah  psQb  T5RJ  oLSh
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将系列列表传递给 Pandas DataFrame? 的相关文章

随机推荐