转置数据框熊猫后,将结构保留为普通数据框

时间:2020-02-11 10:29:41

标签: python pandas dataframe

数据框和转置代码

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文件中读取数据帧时的结构相同。

0 个答案:

没有答案