Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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 如何使用pandas重新格式化数据帧?_Python_Pandas - Fatal编程技术网

Python 如何使用pandas重新格式化数据帧?

Python 如何使用pandas重新格式化数据帧?,python,pandas,Python,Pandas,我有以下数据帧: data = {'Names':['Abbey','English','Maths','Billy','English','Maths','Charlie','English','Maths'],'Subject Grade':['Student Name',85,91,'Student Name',82,74,'Student Name',83,96]} df = pd.DataFrame(data, columns = ['Names','Subject Grade'])

我有以下数据帧:

data = {'Names':['Abbey','English','Maths','Billy','English','Maths','Charlie','English','Maths'],'Subject Grade':['Student Name',85,91,'Student Name',82,74,'Student Name',83,96]}

df = pd.DataFrame(data, columns = ['Names','Subject Grade'])
我想重新格式化数据框,以便名称、主题和等级都位于各自的列中,如下所示:

data2 = {'Names':['Abbey','Abbey','Billy','Billy','Charlie','Charlie'],'Subject':['English','Maths','English','Maths','English','Maths'],'Grade':[85,91,82,74,83,96]}

df2 = pd.DataFrame(data2, columns = ['Names','Subject','Grade'])

您好,您可以使用以下说明:

  df['name'] = df['Names'].mask(df['Subject Grade'] != "Student Name")
  df['name'] = df['name'].fillna(method='ffill')
  df = df.query('`Subject Grade`!="Student Name"')
  df = df.rename(columns={'Names':'Subject', 'Subject Grade':'Grade', 'name':'Names'})

到目前为止,你尝试过什么?我尝试过融化数据帧,但没有效果-真的不知道如何解决这个问题。改为试试这个
df=df.loc[df['Subject Grade']!=“Student Name”]
(它可能与报价的一个坏副本有关)