KeyError: "Not all names specified in 'columns' are found"
KeyError: "Not all names specified in 'columns' are found"
我有一个如下所示的数据框
Date,cust,region,Abr,Number,,,dept
12/01/2010,Company_Name,Somecity,Chi,36,136,NaN,sales
12/02/2010,Company_Name,Someothercity,Nyc,156,NaN,41,mfg
tf = pd.read_clipboard(sep=',')
我正在尝试对 excel 文件进行一些操作
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False, columns = modified_col_list)
writer.save()
但是问题是写文件的时候,用unnamed:5
,unnamed:6
来表示empty column names
。因此,我创建了一个如下所示的 modified_col_list 并将其作为输入传递给 to_excel
函数
ordiginal_col_list = ['Date','cust','region','Abr','Number',nan,nan,'dept']
modified_col_list = ['Date','cust','region','Abr','Number',' ',' ','dept']
但是我的objective是让empty column names as is
在excel期间自己写。但这导致了以下错误
KeyError: "Not all names specified in 'columns' are found"
我希望我的输出如下所示(您可以看到列名是空的)
您可以使用:
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
#if columns name has `Unnamed` replace by empty string
#v.columns = ['' if 'Unnamed' in x else x for x in v.columns]
#if columnshas missing values replace them to empty string
v.columns = v.columns.to_series().fillna('')
#removed columns parameter
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False)
writer.save()
另一个想法是在 groupby
:
之前更改列名称
#if columns name has `Unnamed` replace by empty string
#df.columns = ['' if 'Unnamed' in x else x for x in df.columns]
#if columnshas missing values replace them to empty string
df.columns = df.columns.to_series().fillna('')
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
#removed columns parameter
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False)
writer.save()
我有一个如下所示的数据框
Date,cust,region,Abr,Number,,,dept
12/01/2010,Company_Name,Somecity,Chi,36,136,NaN,sales
12/02/2010,Company_Name,Someothercity,Nyc,156,NaN,41,mfg
tf = pd.read_clipboard(sep=',')
我正在尝试对 excel 文件进行一些操作
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False, columns = modified_col_list)
writer.save()
但是问题是写文件的时候,用unnamed:5
,unnamed:6
来表示empty column names
。因此,我创建了一个如下所示的 modified_col_list 并将其作为输入传递给 to_excel
函数
ordiginal_col_list = ['Date','cust','region','Abr','Number',nan,nan,'dept']
modified_col_list = ['Date','cust','region','Abr','Number',' ',' ','dept']
但是我的objective是让empty column names as is
在excel期间自己写。但这导致了以下错误
KeyError: "Not all names specified in 'columns' are found"
我希望我的输出如下所示(您可以看到列名是空的)
您可以使用:
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
#if columns name has `Unnamed` replace by empty string
#v.columns = ['' if 'Unnamed' in x else x for x in v.columns]
#if columnshas missing values replace them to empty string
v.columns = v.columns.to_series().fillna('')
#removed columns parameter
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False)
writer.save()
另一个想法是在 groupby
:
#if columns name has `Unnamed` replace by empty string
#df.columns = ['' if 'Unnamed' in x else x for x in df.columns]
#if columnshas missing values replace them to empty string
df.columns = df.columns.to_series().fillna('')
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
#removed columns parameter
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False)
writer.save()