Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向所有其他列都是句点的数据帧添加列_Python_Pandas_Indexing_Time Series - Fatal编程技术网

Python 向所有其他列都是句点的数据帧添加列

Python 向所有其他列都是句点的数据帧添加列,python,pandas,indexing,time-series,Python,Pandas,Indexing,Time Series,我有一个带有周期索引的timeseries数据帧。我想在另一个dataframe中使用这些值作为列名,并添加其他不是句点的列。问题是,当我仅使用句点作为列索引创建数据帧时,添加索引为字符串的列会引发错误。但是,如果我使用具有句点和字符串的列索引创建dataframe,那么我就能够添加具有字符串索引的列 import pandas as pd data = np.random.normal(size=(5,2)) idx = pd.Index(pd.period_range(2011,2012,f

我有一个带有周期索引的timeseries数据帧。我想在另一个dataframe中使用这些值作为列名,并添加其他不是句点的列。问题是,当我仅使用句点作为列索引创建数据帧时,添加索引为字符串的列会引发错误。但是,如果我使用具有句点和字符串的列索引创建dataframe,那么我就能够添加具有字符串索引的列

import pandas as pd
data = np.random.normal(size=(5,2))
idx = pd.Index(pd.period_range(2011,2012,freq='A'),name=year)
df = pd.DataFrame(data,columns=idx)
df['age'] = 0
这会引起一个错误

import pandas as pd
data = np.random.normal(size=(5,2))
idx = pd.Index(pd.period_range(2011,2012,freq='A'),name=year)
df = pd.DataFrame(columns=idx.tolist()+['age'])
df = df.iloc[:,:-1]
df[:] = data
df['age'] = 0

这不会引起错误并给出我想要的结果,但这样做在创建数据帧时,我无法以方便的方式分配数据。我想要一个更优雅的方式来实现这个结果。我想知道这是否是熊猫身上的一个缺陷?

我不太确定你想要实现什么,但这里有一种方法可以让我明白你想要什么:

import pandas as pd
idx = pd.Index(pd.period_range(2011,2015,freq='A'),name='year')
df = pd.DataFrame(index=idx)
df1 = pd.DataFrame({'age':['age']})
df1 = df1.set_index('age')
df = df.append(df1,ignore_index=False).T
print df
其中:

Empty DataFrame
Columns: [2011, 2012, 2013, 2014, 2015, age]
Index: []
它会让你以年为周期:

df.columns[0]
Period('2011', 'A-DEC')

使用.merge很可能可以获得相同的结果。

以下操作是否满足您的要求:df=pd.DataFramecolumns=pd.Seriesidx.astypestrunformently否。结果列是一些整数,但与PeriodIndex中的年份不同。这与使用idx.values的问题相同