6

我有一个看起来像这样的数据框:

         level_0              level_1 Repo Averages for 27 Jul 2018
0  Business Date           Instrument                           Ccy
1     27/07/2018  GC_AUSTRIA_SUB_10YR                           EUR
2     27/07/2018    R_RAGB_1.15_10/18                           EUR
3     27/07/2018    R_RAGB_4.35_03/19                           EUR
4     27/07/2018    R_RAGB_1.95_06/19                           EUR

我试图摆脱顶行,只保留

   Business Date           Instrument         Ccy
0     27/07/2018  GC_AUSTRIA_SUB_10YR         EUR
1     27/07/2018    R_RAGB_1.15_10/18         EUR
2     27/07/2018    R_RAGB_4.35_03/19         EUR
3     27/07/2018    R_RAGB_1.95_06/19         EUR

我试过df.columns.droplevel(0) 但没有成功任何帮助都非常受欢迎

4

4 回答 4

6

你可以这样尝试:

df.columns = df.iloc[0]
df = df.reindex(df.index.drop(0)).reset_index(drop=True)
df.columns.name = None

输出:

  Business Date           Instrument  Ccy
0    27/07/2018  GC_AUSTRIA_SUB_10YR  EUR
1    27/07/2018    R_RAGB_1.15_10/18  EUR
2    27/07/2018    R_RAGB_4.35_03/19  EUR
3    27/07/2018    R_RAGB_1.95_06/19  EUR
于 2018-07-31T10:50:41.517 回答
3

您可以利用该参数header在此处阅读有关 pandas 中标头参数的更多信息)。

假设您有以下数据集

df = pd.read_csv("Prices.csv")
print(df)

那输出

              0       1     2         3         4
0      DATA      SESSAO  HORA  PRECO_PT  PRECO_ES
1      1/1/2020  0       1     41,88     41,88   
2      1/1/2020  0       2     38,60     38,60   
3      1/1/2020  0       3     36,55     36,55 

通过简单地传递header = 0这样的

df = pd.read_csv("Prices.csv", header=0)
print(df)

你会得到你想要的

           DATA  SESSAO  HORA PRECO_PT PRECO_ES
0      1/1/2009  0       1     55,01    55,01  
1      1/1/2009  0       2     56,13    56,13  
2      1/1/2009  0       3     50,59    50,59  
3      1/1/2009  0       4     45,83    45,83  
4      1/1/2009  0       5     42,07    41,90 
于 2020-07-22T09:35:51.890 回答
3

您可以尝试使用切片。

df = df[1:]

这将删除数据框的第一行。

于 2020-08-07T21:29:15.683 回答
1
df.drop(row_start, row_end)

这将有助于

于 2020-06-26T14:29:55.173 回答