使用python添加新行时,如何在csv中不显示/删除索引

2024-04-19 13:52:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV文件,我用它来获取它的值从一列,但我的问题是,我得到的值是从两个标题,这是四舍五入下载速度和四舍五入上传速度,所以我做的是分开他们,并连接起来

然后我添加了一个两行来分隔它们,但是问题是行的索引显示了,但是我想要的是一个空白单元格。这是我的密码:

import pandas as pd
from decimal import Decimal, ROUND_HALF_UP

L=['0000','0100','0200','0300','0400','0500','0600'
                                        ,'0700','0800','0900','1000','1100','1200','1300'
                                        ,'1400','1500','1600','1700','1800','1900','2000'
                                        ,'2100','2200','2300']

df1 = pd.read_csv('Sample.csv')
df1.Date = pd.to_datetime(df1.Date, dayfirst=True)
df1 = df1.pivot_table(values='Rounded-Download-Speed',index='Date',columns='HourBin',aggfunc='max',fill_value="ND")
df1.columns = df1.columns.astype(str).str.zfill(4)
df1.index = df1.index.map(lambda t: t.strftime('%Y-%m-%d'))
df1 = df1.reindex_axis(L, axis=1)
spaceRow1 = "-"
df1.loc[len(df1)] = spaceRow1
spaceRow2 = L
df1.loc[len(df1)] = spaceRow2

df2 = pd.read_csv('Sample.csv')
df2.Date = pd.to_datetime(df2.Date, dayfirst=True)
df2 = df2.pivot_table(values='Rounded-Upload-Speed',index='Date',columns='HourBin',aggfunc='max',fill_value="ND")
df2.columns = df2.columns.astype(str).str.zfill(4)
df2.index = df2.index.map(lambda t: t.strftime('%Y-%m-%d'))
df2 = df2.reindex_axis(L, axis=1)


df3 = pd.concat([
    pd.concat([df1], axis = 1),
    pd.concat([df2], axis = 1)]).to_csv("Output.csv", header = True, encoding = 'utf-8')

这是输出,索引是日期:

            0   100 200 300
05/03/2017  ND  ND  ND  ND
06/03/2017  ND  ND  ND  ND
07/03/2017  36  36.2    36.2    21.3
08/03/2017  35.5    35.5    59.8    35.9
09/03/2017  35.7    43.6    35.2    35.2
10/03/2017  ND  ND  ND  ND
         6  -   -   -   -
         7  0   100 200 300
05/03/2017  ND  ND  ND  ND
06/03/2017  ND  ND  ND  ND
07/03/2017  1.4 0.2 0.3 0.3

我要索引6&;7是空的,就像索引0一样。但是我不明白它怎么会不像索引0那样工作


Tags: columnscsvtoimporttruereaddateindex
1条回答
网友
1楼 · 发布于 2024-04-19 13:52:50

我想你需要rename

df3 = df3.rename(index={6:'', 7:''})
print (df3)
               0   100   200   300
05/03/2017    ND    ND    ND    ND
06/03/2017    ND    ND    ND    ND
07/03/2017    36  36.2  36.2  21.3
08/03/2017  35.5  35.5  59.8  35.9
09/03/2017  35.7  43.6  35.2  35.2
10/03/2017    ND    ND    ND    ND
               -     -     -     -
               0   100   200   300
05/03/2017    ND    ND    ND    ND
06/03/2017    ND    ND    ND    ND
07/03/2017   1.4   0.2   0.3   0.3

更具动态性的解决方案-获得len(df1.index)什么比变量len(df1)更快,然后只需要一个^{},最后一个rename通过idx1

spaceRow1 = "-"
idx1 = len(df1.index)
df1.loc[idx1] = spaceRow1
spaceRow2 = L
df1.loc[idx1+1] = spaceRow2

df3 = pd.concat([df1, df2])

df3 = df3.rename(index={idx1:'', idx1+1:''})
print (df3)
               0   100   200   300
05/03/2017    ND    ND    ND    ND
06/03/2017    ND    ND    ND    ND
07/03/2017    36  36.2  36.2  21.3
08/03/2017  35.5  35.5  59.8  35.9
09/03/2017  35.7  43.6  35.2  35.2
10/03/2017    ND    ND    ND    ND
               -     -     -     -
               0   100   200   300
05/03/2017    ND    ND    ND    ND
06/03/2017    ND    ND    ND    ND
07/03/2017   1.4   0.2   0.3   0.3

相关问题 更多 >