teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

dfを結合してから、EXCELに入れるようにしました。列結合にすればよいと思ったのですが。

2021/05/21 02:08

投稿

KAZENOMACHI
KAZENOMACHI

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,11 @@
1
- 試行錯誤していすのでごちゃごちゃになっいると思いますがデータをEXCELの行に入れていき、最後にDataFrameを書き込む上書されるので、後書き込んだ方が優先されます。一旦DataFrameに入れてから結合して、最後EXCELに書き込もうとしているのですが、後半のdf3書き込まれませんdf3のデータをD列から書き込むにはどうしたらいいのでしょうか?1行ずつの方がよのかとも思います。Df同士で結合して、あとからEXCEL入れのか、都度、excelに入れるのか、PCのメモリ節約は、dfに大量のデータを入れない方がよいなとも思います。
2
- ![イメージ説明](bf4842112db73bb9602377b1ad6b638e.jpeg)
1
+ ずはDf同士で結合して、あとからEXCELに入れてみました。結合のときに、結合にしているのですが、てしいます。どうしたら、一行ずつきれいにできるでしょう
2
+ ![イメージ説明]![イメージ説明](ee3667339278f41dd0ab11962690c483.jpeg)
3
3
  ```ここに言語を入力
4
4
  from pulp import *
5
5
  import pandas as pd
6
6
  import numpy as np
7
7
  import openpyxl
8
8
  from openpyxl import Workbook
9
- #from styleframe import StyleFrame
10
- #wb = Workbook()
11
9
  from openpyxl import load_workbook
12
10
  #Excelファイルを指定
13
11
  df = pd.read_excel('C:/Users/05896/Desktop/Python学習/Main Cable List for Test Drum allocation.xlsx', index_col=0)
@@ -46,24 +44,23 @@
46
44
  m += lpDot(Length, x) # 目的関数
47
45
  m += lpDot(Length, x) <= capacity # 制約
48
46
  m.solve()
49
- print("CableDrum",Number,value(m.objective))
47
+ cable_array =([Number], ['Main_Cable_Drum' + str(Number)], [value(m.objective)])
48
+ df2 = pd.DataFrame(cable_array)
50
49
  Length = np.delete(Length,[i for i in r if value(x[i]) > 0.5] )
51
50
  Cablelistnext = np.delete(Cablelist,[i for i in r if value(x[i]) > 0.5] )
52
51
  result = list(set(Cablelist) - set(Cablelistnext))
53
- print(result)
54
- CD_Sheet.cell(row=Number+1, column=1).value = Number
55
- CD_Sheet.cell(row=Number+1, column=2).value = 'Main_Cable_Drum'+ str(Number)
56
- CD_Sheet.cell(row=Number+1, column=3).value = value(m.objective)
57
52
  df3=pd.DataFrame(result)
58
- df2=pd.DataFrame(CD_Sheet)
59
53
  #
54
+ new_df = pd.concat([df2,df3],axis=1)
55
+ #
60
- df_list.append((pd.merge(df2,df3)).T)
56
+ df_list.append(new_df.T)
57
+ #
61
58
  Number = Number + 1
59
+ #
62
- #CD.save('C:/Users/05896/Desktop/Python学習/Cable Drum.xlsx')
60
+ df_list.append(new_df.T)
63
61
  #
64
62
  all_df = pd.concat(df_list)
65
63
  all_df.to_excel('C:/Users/05896/Desktop/Python学習/Cable Drum.xlsx', index=False, header=False, startrow=1, startcol=1)
66
64
  #EXCELへの書き込み
67
- CD.save('C:/Users/05896/Desktop/Python学習/Cable Drum.xlsx')
68
65
  print("end")
69
66
  ```