以下列方式在pandas中定义数据框时
df = pd.DataFrame([['07-Dec-2015', 1,2],
['08-Dec-2015', 3,4],
['09-Dec-2015', 5,6]],
columns=['Date','FR','UK'])
df.set_index('Date')
Out[1]:
FR UK
Date
07-Dec-2015 1 2
08-Dec-2015 3 4
09-Dec-2015 5 6
有没有办法为列分配标签(让我们说“国家'”)和另一个数据框值标签(比方说' Hits')。我想让它看起来像这样:
作为旁注:上面附加的img中的数据框创建如下:
df = pd.DataFrame()
df['Date'] = ['07-Dec-2015','07-Dec-2015','08-Dec-2015','08-Dec-2015','09-Dec-2015','09-Dec-2015']
df['Country'] = ['UK','FR','UK','FR','UK','FR']
df['Hits'] = [2,1,4,3,6,5]
df = df.set_index(['Date','Country'])
df.unstack()
然而,这对我的目的来说还不够好,因为在我的python应用程序中,数据帧构造函数正在传递一个numpy数组,而索引arg则传递一个日期时间向量,因此从广义上讲它看起来像:pd.DataFrame(numpy.ndarray, columns=columnNames, index=DatetimeIndex)
提前致谢
答案 0 :(得分:1)
你可以:
df = pd.DataFrame(np.random.random((10, 2)), index=pd.DatetimeIndex(start=date(2015,1,1), periods=10, freq='D'))
df.index.name = 'Date'
df.columns = pd.MultiIndex.from_product([['Hits'], ['UK', 'FR']], names=['', 'Country'])
请参阅MultiIndex
docs。