我有以下代码:
#Import Modoules
from shutil import copyfile
import pandas as pd
#Read new sample
col_list = ['Use%']
df = pd.read_csv('temp.csv', usecols=col_list)
#Open Existing file and rename headers
partition_df = pd.read_csv('output.csv', names=['Server Name', 'Date' ,'Disk Size', 'Mounted on', 'M-1 Usage %', 'M-2 Usage %', 'M-3 Usage %', 'M-4 Usage %', 'M-5 Usage %','M-6 Usage %', 'M-7 Usage %', 'M-8 Usage %', 'M-9 Usage %', 'M-10 Usage %', 'M-11 Usage %', 'M-12 Usage %', 'Temp'], header=1)
#insert new Sample
partition_df.insert(loc=4, column='Current % Usage', value=df)
#Drop Temp Column
partition_df.drop(['Temp'], axis=1, inplace=True)
#Drop empty Column
partition_df.dropna(axis=1, how='all', inplace=True)
#Write new Sample file
partition_df.to_csv('output.csv', index=False)
#copy output file to disk_check.csv
copyfile('output.csv', 'disk_usage.csv')文件temp.csv为
Use%
20%
30%
23%文件output.csv为
Server Name,Date,Disk Size,Mounted On,Current Usage %
s4prd1,30/11/2020,15G,/usr/sap,17%
s4prd2,30/11/2020,2.0G,/var,1%
s4prd2,30/11/2020,15G,/usr/sap,16%我需要最终的output.csv文件与新的列,这是‘使用%’作为‘当前使用率%’在列5,和旧的列进一步前进1列后,它应该看起来像这样:
Server Name,Date,Disk Size,Mounted On,Current Usage %,M-1 Usage %
s4prd1,30/11/2020,15G,/usr/sap,20%,17%
s4prd2,30/11/2020,2.0G,/var,30%,1%
s4prd2,30/11/2020,15G,/usr/sap23%,16%我不想插入空列,因为我在测试中成功地做到了这一点。但是,当我尝试在生产环境中运行它时,它在代码中显示错误-#打开现有文件并重命名标题-因为这些列中没有数据。
很抱歉我的英语不好:)
请帮帮忙
发布于 2020-12-02 00:56:18
如果我没理解错的话,您需要添加新的“当前使用”,并将旧的前移并分别更改它们的名称。如果是这样,我可以建议先更改列名,这样以前的“当前使用”将变为“M-1使用”,以此类推:
static_columns = ['Server Name', 'Date', 'Disk Size', 'Mounted On']
partition_df.columns = static_columns + ['M-{} Usage%'.format(i) for i in range(1, (len(df.columns)-len(static_columns))+1)]然后,您可以简单地将新数据插入为“当前使用情况”:
partition_df.insert(loc=4, column = 'Current Usage%', value=df)https://stackoverflow.com/questions/65090483
复制相似问题