python:如何制作pd数据帧头';第二个组件位于第一行
我有一个数据帧(df),如下所示:python:如何制作pd数据帧头';第二个组件位于第一行,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧(df),如下所示: 0 1 2 3 4 5 s4-e1-p1-cohex.wav 0.0 0.0 0.0 Male No 0.0 s4-e1-p2-thev-buckle.wav 50000 0.51 98039 Male Yes 1 s4-e10-p1rly-newlywe
0 1 2 3 4 5
s4-e1-p1-cohex.wav 0.0 0.0 0.0 Male No 0.0
s4-e1-p2-thev-buckle.wav 50000 0.51 98039 Male Yes 1
s4-e10-p1rly-newlyweds.wav 0 0 0 Female No 0
s4-e10-p2-ks-away.wav 150000 0.2 750000 Male Yes 1
当前,此数据帧的标题是前两行:
df.columns.values.tolist()
#[(0, 0.0), (1, 0.0), (2, 0.0), (3, 'Male'), (4, 'No'), (5, 0.0)]
我想知道如何将这个打印出来的数据框中的第二行移动到panda数据框中的第一行。换句话说,下面打印的行不在pd数据框中,我想将其作为数据框的顶行包含(s4-e1-p1-cohex.wav不在列名中,也不在行名中):
我试着四处搜索,但没有找到这个奇怪格式的答案。我知道我可以让列名成为一个不同的向量,然后将它插入到数据帧中,但我想知道是否还有其他方法不那么复杂
df.to_dict()
{(0, 0.0): {'s4-e1-p2-thev-buckle.wav': 50000.0,
's4-e10-p1rly-newlyweds.wav ': 0.0,
's4-e10-p2-ks-away.wav': 150000.0},
(1, 0.0): {'s4-e1-p2-thev-buckle.wav': 0.51,
's4-e10-p1rly-newlyweds.wav': 0.0,
's4-e10-p2-ks-away.wav': 0.2},
(2, 0.0): {'s4-e1-p2-thev-buckle.wav': 98039.0,
's4-e10-p1rly-newlyweds.wav': 0,
's4-e10-p2-ks-away.wav': 750000 },
(3, 'Male'): {'s4-e1-p2-thev-buckle.wav': 'Male',
's4-e10-p1rly-newlyweds.wav': 'Female',
's4-e10-p2-ks-away.wav': 'Male'},
(4, 'No'): {'s4-e1-p2-thev-buckle.wav': 'Yes',
's4-e10-p1rly-newlyweds.wav': 'No',
's4-e10-p2-ks-away.wav': 'Yes'},
(5, 0.0): {'s4-e1-p2-thev-buckle.wav': 1,
's4-e10-p1rly-newlyweds.wav': 0,
's4-e10-p2-ks-away.wav': 1},
试试这个
df.drop(df.index[0])
删除第一行。我猜问题中的
df
输出有问题,因为我无法生成您的输出。是我干的
df = pd.DataFrame(columns = [(0, 0.0), (1, 0.0), (2, 0.0), (3, 'Male'), (4, 'No'), (5, 0.0)])
df.loc['s4-e1-p2-thev-buckle.wav']= [50000.0, 0.51, 98039, "Male", "Yes", 1]
df.loc['s4-e10-p1rly-newlyweds.wav']= [0.0, 0.0, 0.0, "Female", "No", 0]
df.loc['s4-e10-p2-ks-away.wav'] = [150000.0, 0.2, 750000, "Male", "Yes",1]
df.to_dict()
的输出为
{(0, 0.0): {'s4-e1-p2-thev-buckle.wav': 50000.0, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 150000.0},
(1, 0.0): {'s4-e1-p2-thev-buckle.wav': 0.51, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 0.2},
(2, 0.0): {'s4-e1-p2-thev-buckle.wav': 98039, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 750000},
(3, 'Male'): {'s4-e1-p2-thev-buckle.wav': 'Male', 's4-e10-p1rly-newlyweds.wav': 'Female', 's4-e10-p2-ks-away.wav': 'Male'},
(4, 'No'): {'s4-e1-p2-thev-buckle.wav': 'Yes', 's4-e10-p1rly-newlyweds.wav': 'No', 's4-e10-p2-ks-away.wav': 'Yes'},
(5, 0.0): {'s4-e1-p2-thev-buckle.wav': 1, 's4-e10-p1rly-newlyweds.wav': 0, 's4-e10-p2-ks-away.wav': 1}}
我的df
通过Jupyter笔记本电脑的输出是
我真的不明白你的问题和你想要的结果。无法从
df
输出中删除标题。除非将其打印到文件中,然后使用python删除第一行。如何读取数据帧?在这个问题中添加df.to_dict(),这样我们就可以确切地看到数据帧的样子。添加df.to_dict()此数据帧是从字典转换而来的,但会产生这种奇怪的格式。我的意思是我想删除第一行。我想要的是将s4-e1-p1-cohex.wav行转换为此数据帧的第一行。目前,它显示为标题的一部分,并且s4-e1-p1-cohex.wav不属于标题或行名称您的问题不清楚,因为您已将数据读入df
。如果它是一个csv文件,您可以尝试在pd.read\u csv()
中使用skiprows
参数。这是一个从字典转换而来的数据帧,产生了这种werid格式
{(0, 0.0): {'s4-e1-p2-thev-buckle.wav': 50000.0, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 150000.0},
(1, 0.0): {'s4-e1-p2-thev-buckle.wav': 0.51, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 0.2},
(2, 0.0): {'s4-e1-p2-thev-buckle.wav': 98039, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 750000},
(3, 'Male'): {'s4-e1-p2-thev-buckle.wav': 'Male', 's4-e10-p1rly-newlyweds.wav': 'Female', 's4-e10-p2-ks-away.wav': 'Male'},
(4, 'No'): {'s4-e1-p2-thev-buckle.wav': 'Yes', 's4-e10-p1rly-newlyweds.wav': 'No', 's4-e10-p2-ks-away.wav': 'Yes'},
(5, 0.0): {'s4-e1-p2-thev-buckle.wav': 1, 's4-e10-p1rly-newlyweds.wav': 0, 's4-e10-p2-ks-away.wav': 1}}