我的df低于
MemoryStream stream = new MemoryStream();
using (SpreadsheetDocument foo = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookPart = foo.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
workbookPart.Workbook.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
Sheets sheets = workbookPart.Workbook.AppendChild<Sheets>(new Sheets());
string idPlanilha = "Report";
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>(idPlanilha);
worksheetPart.Worksheet = new Worksheet(new SheetData());
Sheet planilha1 = new Sheet()
{
Id = idPlanilha,
SheetId = 1,
Name = "first"
};
sheets.Append(planilha1);
SheetData dadosPlanilha = worksheetPart.Worksheet.GetFirstChild<SheetData>();
UInt32Value indice = 1;
foreach (DataRow rowDados in dt.Rows)
{
...
}
worksheetPart.Worksheet.Save();
workbookPart.Workbook.Save();
foo.Close();
stream.Position = 0;
XmlDocument document = new XmlDocument();
StreamReader reader = new StreamReader(stream);
document.Load(reader); // The error that did out:" Invalid root level data. Line 1, position 1."
byte[] file = Encoding.Default.GetBytes(document.OuterXml);
return File(file, document.Name);
}
我需要除 Cost,Reve
0,3
4,0
0,0
10,10
4,8
len(df['Cost']) = 300
len(df['Reve']) = 300
下面是我的代码
df['Cost'] / df['Reve']
我收到错误df[['Cost','Reve']] = df[['Cost','Reve']].apply(pd.to_numeric)
ValueError: Columns must be same length as key
我收到错误df['C/R'] = df[['Cost']].div(df['Reve'].values, axis=0)
答案 0 :(得分:0)
问题是重复的列名,请验证:
#generate duplicates
df = pd.concat([df, df], axis=1)
print (df)
Cost Reve Cost Reve
0 0 3 0 3
1 4 0 4 0
2 0 0 0 0
3 10 10 10 10
4 4 8 4 8
df[['Cost','Reve']] = df[['Cost','Reve']].apply(pd.to_numeric)
print (df)
# ValueError: Columns must be same length as key
您可以找到以下列名称:
print (df.columns[df.columns.duplicated(keep=False)])
Index(['Cost', 'Reve', 'Cost', 'Reve'], dtype='object')
如果列中的值相同,则删除重复项:
df = df.loc[:, ~df.columns.duplicated()]
df[['Cost','Reve']] = df[['Cost','Reve']].apply(pd.to_numeric)
#simplify division
df['C/R'] = df['Cost'].div(df['Reve'])
print (df)
Cost Reve C/R
0 0 3 0.0
1 4 0 inf
2 0 0 NaN
3 10 10 1.0
4 4 8 0.5