数据框和转置代码
import pandas as pd
df = pd.DataFrame({'BRAND': ['HERO','LOCAL','KEJAL','J&J'],
'SKU': ['BIKES','MATS', 'BLANKETS', 'CREAMS'],
'JAN15 SVAL': [1,3,6,10],
'FEB15 SVAL': [4,5, 6,16],
'MAR15 SVAL':[13, 14,10,12]})
dft1 = df.set_index('SKU').T
数据框的结构:
df.columns
Index(['BRAND', 'SKU', 'JAN15 SVAL', 'FEB15 SVAL', 'MAR15 SVAL'], dtype='object')
换位结构:
dft1.columns
Index(['BIKES', 'MATS', 'BLANKETS', 'CREAMS'], dtype='object', name='SKU')
现在,转置和普通数据帧的结构之间的区别在于,在转置中,name ='SKU'作为dtype对象的名称出现。 我知道我可以使用重命名轴等删除dtype对象的名称= SKU ,但是这不会改变df和dft1的结构不同的事实。 如何简单地为dft1保留与数据帧df相同的结构?
当前转置数据帧 (注意名称末尾为“ SKU”)
[IN]dft1.columns
[OUT] Index(['BIKES', 'MATS', 'BLANKETS', 'CREAMS'], dtype='object', name='SKU')
预期输出
[IN]dft1.columns
[OUT] Index(['BIKES', 'MATS', 'BLANKETS', 'CREAMS'], dtype='object')
尝试输入代码:
[IN] dft1
[OUT]
SKU BIKES MATS BLANKETS CREAMS
BRAND HERO LOCAL KEJAL J&J
JAN15 SVAL 1 3 6 10
FEB15 SVAL 4 5 6 16
MAR15 SVAL 13 14 10 12
[IN]dft1=dft1.reset_index()
[IN]new = dft1[['BIKES', 'MATS', 'BLANKETS','CREAMS']].copy() #Copying the contents of the
#transposed dataframe to see if structure same as df can be maintained where there is no name for
#dtype object
[IN]new.columns
[OUT]Index(['BIKES', 'MATS', 'BLANKETS','CREAMS'], dtype='object', name='SKU')
我试图将dft1数据帧(不包括SKU列)复制到另一个数据帧中。我以为如果将几列复制到另一个数据框中,可以实现类似于df的结构,但是对于new.columns数据框,我仍然在dtype ='object'之后得到name ='SKU'。使用重置轴可以摆脱name = SKU的局面,但dft1的结构仍然不一样。
我正在处理非常非常复杂的时间序列代码,并且仅在结构类似于普通df时才提供输出。因此我需要dft1的结构与从csv文件中读取数据帧时的结构相同。