创建pandas Dataframe并重命名将0.10.0更改为0.13.1

时间:2014-02-24 10:21:18

标签: python pandas

我目前正在调试一些遗留代码以使用更新版本的pandas。我在系列中有一些信息,我想构建一个新的Dataframe:

df = pd.DataFrame(old_series, columns=['A'])  # create new dataframe from Series

在0.10.0中,这基本上创建了一个新的Dataframe,列名设置为“A”。在10.13.1中,似乎尝试做一些不同的事情,因为它给了我一个空的DataFrame。

可以做:

df = pd.DataFrame(old_series)
#pseudo_code to find name of column and then use
#pd.rename as per http://stackoverflow.com/questions/12201099/python-pandas-rename-a-series-within-a-dataframe

任何人都知道更短的方式。真的不关心系列曾经被称为什么,只是想在标题为“A”的新DataFrame中得到它

不确定我是否滥用旧代码的语法,或者这是否是0.13.1中的错误?

2 个答案:

答案 0 :(得分:1)

df = pd.DataFrame(old_series)
df.columns = ["A"]

答案 1 :(得分:1)

这是一个未记录的“功能”,也未经过测试,0.13.0也发生了变化。 它违反了columns kw在DataFrame构造函数中的工作方式的一致性,即reindexes结果集,而不是renames

如果需要,请使用to_frame更改系列的名称。

In [8]: DataFrame(Series([1,2,3],name='foo'),columns=['A'])
Out[8]: 
Empty DataFrame
Columns: [A]
Index: []

[0 rows x 1 columns]

In [9]: Series([1,2,3],name='foo').to_frame()
Out[9]: 
   foo
0    1
1    2
2    3

[3 rows x 1 columns]

In [10]: Series([1,2,3],name='foo').to_frame(name='A')
Out[10]: 
   A
0  1
1  2
2  3

[3 rows x 1 columns]