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

質問編集履歴

6

2021/07/30 04:20

投稿

F91_
F91_

スコア16

title CHANGED
File without changes
body CHANGED
@@ -81,4 +81,4 @@
81
81
 
82
82
  ### 試したこと
83
83
 
84
- concatの使用しての連結。こちらも数字と文字の連結は出来ない内容のエラーがはっせい
84
+ concatの使用しての連結。こちらも数字と文字の連結は出来ない内容のエラーが発生

5

2021/07/30 04:20

投稿

F91_
F91_

スコア16

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  ②機械稼働率が自動集計出力される
7
7
  ③管理者が集計出力されたエクセルファイルを開き、1日の機械稼働状況に関して問題があった場合にコメントを記述し、エクセルを上書き保存する
8
8
  ④以下のソースコードを実行
9
- きかい更新されたエクセルデータとコメントが入力されたエクセルデータが連結される
9
+ 稼働率が更新されたエクセルデータとコメントが入力されたエクセルデータが連結される
10
10
 
11
11
  #使用しているpythonプログラムコード
12
12
  ```python
@@ -52,7 +52,7 @@
52
52
  ```
53
53
 
54
54
  ### 発生している問題・エラーメッセージ
55
- エクセルデータに文字と数値が混在している為、連結が出来ないと認識しています。
55
+ 連結するエクセルデータに文字と数値が混在している為、連結が出来ないと認識しています。
56
56
 
57
57
  ```
58
58
  ValueError: You are trying to merge on int64 and object columns. If you wish to proceed you should use pd.concat
@@ -61,7 +61,7 @@
61
61
  ###上記プログラムにて出力されたエクセルデータ
62
62
  ![イメージ説明](4b9e5ba6b3017e40a48723b1707f3de2.png)
63
63
 
64
- プログラムにて出力されたエクセルファイルを開き、稼働状況に問題があった場合に管理者が手入力にてコメントを残し保存する。入力箇所はデータがない一番右の列に入力する
64
+ プログラムにて自動出力されたエクセルファイルを開き、稼働状況に問題があった場合に管理者が手入力にてコメントを残し保存する。入力箇所はデータがない一番右の列に入力することとする
65
65
  ![イメージ説明](e2c96032740b4e29b614df62bd3e6a5a.jpeg)
66
66
 
67
67
  ラズベリーパイで採取したデータは毎日、日付毎にファイル追加されていきます
@@ -81,4 +81,4 @@
81
81
 
82
82
  ### 試したこと
83
83
 
84
- concatの使用して連結
84
+ concatの使用して連結。こちらも数字と文字の連結は出来ない内容のエラーがはっせい

4

2021/07/30 04:20

投稿

F91_
F91_

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,12 @@
1
1
  #実現したいこと
2
- 以下のソースコードにて機械稼働率のエクセル集計出力を行い、管理者が1日の稼働状況に問題があった場合に手入力によるコメントを残します。pythonプログラムを再実行してもエクセルに書き込んだコメントは消去されないプログラムを構築したいと思います。
2
+ 以下のソースコードにて機械稼働率のエクセル自動集計出力を行い、管理者が1日の機械稼働状況に問題があった場合に手入力によるコメントを残します。pythonプログラムを再実行してもエクセルに書き込んだコメントは消去されないプログラムを構築したいと思います。
3
3
 
4
4
  ~手順~
5
5
  ①以下のソースコードを実行
6
- ②機械稼働率が集計出力される
6
+ ②機械稼働率が自動集計出力される
7
- ③管理者が集計出力されたエクセルファイルを開き、1日の稼働状況に関して問題があった場合にコメントを記述し、エクセルを保存する
7
+ ③管理者が集計出力されたエクセルファイルを開き、1日の機械稼働状況に関して問題があった場合にコメントを記述し、エクセルを上書き保存する
8
8
  ④以下のソースコードを実行
9
- ⑤更新されたエクセルデータとコメントが入力されたエクセルデータが連結される
9
+ きかい更新されたエクセルデータとコメントが入力されたエクセルデータが連結される
10
10
 
11
11
  #使用しているpythonプログラムコード
12
12
  ```python

3

発生している問題の変更

2021/07/30 04:17

投稿

F91_
F91_

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,12 @@
1
1
  #実現したいこと
2
2
  以下のソースコードにて機械稼働率のエクセル集計出力を行い、管理者が1日の稼働状況に問題があった場合に手入力によるコメントを残します。pythonプログラムを再実行してもエクセルに書き込んだコメントは消去されないプログラムを構築したいと思います。
3
3
 
4
- #問題が発生するまでの手順
4
+ ~手順~
5
5
  ①以下のソースコードを実行
6
6
  ②機械稼働率が集計出力される
7
7
  ③管理者が集計出力されたエクセルファイルを開き、1日の稼働状況に関して問題があった場合にコメントを記述し、エクセルを保存する
8
8
  ④以下のソースコードを実行
9
- 機械稼働率が更新されエクセルに手入力したコメントが消去される
9
+ ⑤更新されエクセルデータとコメントが入力されたエクセルデータが連結され
10
10
 
11
11
  #使用しているpythonプログラムコード
12
12
  ```python
@@ -18,7 +18,7 @@
18
18
 
19
19
  file_list=glob.glob('//192.168.1.4/pi/mydata'+t+'*')
20
20
 
21
- rcd={'日付' : [], '稼働時間(分)': [], '無人稼働時間(分)': [], '稼働率(%)': []}
21
+ rcd={'日付' : [], '稼働時間(分)': [], '無人稼働時間(分)': [], '停止時間(分)': [],'トータル時間(分)': [],'稼働率(%)': []}
22
22
 
23
23
  for file in file_list:
24
24
 
@@ -27,18 +27,37 @@
27
27
  x=a.iloc[:,0].count()
28
28
  y=a.iloc[:,1].sum()
29
29
  z=a.iloc[:,2].sum()
30
+ u=x-y-z
30
31
  w=round(y/x*100,1)
31
32
 
32
33
  rcd['日付'].append(d)
33
34
  rcd['稼働時間(分)'].append(y)
34
35
  rcd['無人稼働時間(分)'].append(z)
36
+ rcd['停止時間(分)'].append(u)
37
+ rcd['トータル時間(分)'].append(x)
35
38
  rcd['稼働率(%)'].append(w)
36
-
39
+
37
40
  df=pd.DataFrame(rcd)
38
41
  print(df)
42
+
43
+ monthly_file = f'{t}.xlsx'
44
+ try:
45
+ df_m = pd.read_excel(monthly_file)
46
+ df_output = pd.merge(df_m, df,how='outer')
47
+ except FileNotFoundError:
48
+ df_output = df.copy()
49
+ df_output['コメント'] = ''
50
+
39
- df.to_excel('202107.xlsx',index=False)
51
+ df_output.to_excel(monthly_file,index=False)
40
52
  ```
41
53
 
54
+ ### 発生している問題・エラーメッセージ
55
+ エクセルデータに文字と数値が混在している為、連結が出来ないと認識しています。
56
+
57
+ ```
58
+ ValueError: You are trying to merge on int64 and object columns. If you wish to proceed you should use pd.concat
59
+ ```
60
+
42
61
  ###上記プログラムにて出力されたエクセルデータ
43
62
  ![イメージ説明](4b9e5ba6b3017e40a48723b1707f3de2.png)
44
63
 
@@ -53,4 +72,13 @@
53
72
  データの保存状況
54
73
  ![イメージ説明](26728973f1153500684725b4049ba75c.png)
55
74
  光センサーにて1分毎に稼働状況をラズベリーパイ内にエクセル記録
56
- ![イメージ説明](ee9ec5cc3f851df78030f6c28aaab758.jpeg)
75
+ ![イメージ説明](ee9ec5cc3f851df78030f6c28aaab758.jpeg)
76
+
77
+
78
+
79
+
80
+
81
+
82
+ ### 試したこと
83
+
84
+ concatの使用して連結

2

再修正

2021/07/30 01:45

投稿

F91_
F91_

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,13 @@
1
1
  #実現したいこと
2
- 以下のソースコードにてエクセル出力を行い、管理者が機械稼働に問題があった場合に手入力によるコメントを残します。pythonプログラムを再実行してもコメントは消去されないプログラムを構築したいと思います。
2
+ 以下のソースコードにて機械稼働率のエクセル集計出力を行い、管理者が1日の稼働状況に問題があった場合に手入力によるコメントを残します。pythonプログラムを再実行してもエクセルに書き込んだコメントは消去されないプログラムを構築したいと思います。
3
3
 
4
4
  #問題が発生するまでの手順
5
5
  ①以下のソースコードを実行
6
- ②機械稼働率が更新される
6
+ ②機械稼働率が集計出力される
7
- ③管理者がエクセルファイルを開き、1日の稼働に関して問題があった場合にコメントを記述する
7
+ ③管理者が集計出力されたエクセルファイルを開き、1日の稼働状況に関して問題があった場合にコメントを記述し、エクセルを保存する
8
8
  ④以下のソースコードを実行
9
- ⑤機械稼働率が更新され、手入力したコメントが消去される
9
+ ⑤機械稼働率が更新され、エクセルに手入力したコメントが消去される
10
+
10
11
  #使用しているpythonプログラムコード
11
12
  ```python
12
13
  import pandas as pd
@@ -41,15 +42,15 @@
41
42
  ###上記プログラムにて出力されたエクセルデータ
42
43
  ![イメージ説明](4b9e5ba6b3017e40a48723b1707f3de2.png)
43
44
 
44
- プログラムにて出力されたエクセルファイルに問題があった場合に管理者がコメントを残す。コメントはデータがない一番右の列に入力する
45
+ プログラムにて出力されたエクセルファイルを開き、稼働状況に問題があった場合に管理者が手入力にてコメントを残し、保存入力箇所はデータがない一番右の列に入力する
45
46
  ![イメージ説明](e2c96032740b4e29b614df62bd3e6a5a.jpeg)
46
47
 
47
48
  ラズベリーパイで採取したデータは毎日、日付毎にファイル追加されていきます
48
49
  20210709、20210710・・・とファイルが増え、上記のコードを実行にて出力データ
49
- の集計更新がかかりますが、トラブルなどのコメントは残していきたいと思います
50
+ の集計更新がかか
50
51
 
51
52
  ###ラズベリーパイで採取したデータ
52
- データの保存方法
53
+ データの保存状況
53
54
  ![イメージ説明](26728973f1153500684725b4049ba75c.png)
54
- 光センサーにて1分毎に稼働状況を記録
55
+ 光センサーにて1分毎に稼働状況をラズベリーパイ内にエクセル記録
55
56
  ![イメージ説明](ee9ec5cc3f851df78030f6c28aaab758.jpeg)

1

実現したいことを具体的に記載しました

2021/07/20 13:55

投稿

F91_
F91_

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- pythonエクセル更新をかけ場合に、コメントなどはそのままにしたい
1
+ pythonプログラムにてエクセル更新をしても手入力したコメントはそのままにするプログラムを作成したい
body CHANGED
@@ -1,4 +1,13 @@
1
+ #実現したいこと
2
+ 以下のソースコードにてエクセル出力を行い、管理者が機械稼働率に問題があった場合に手入力によるコメントを残します。pythonプログラムを再実行してもコメントは消去されないプログラムを構築したいと思います。
3
+
4
+ #問題が発生するまでの手順
1
- #以下のコードにてエクセルファイル出力します
5
+ 以下のソースコードを実行
6
+ ②機械稼働率が更新される
7
+ ③管理者がエクセルファイルを開き、1日の稼働率に関して問題があった場合にコメントを記述する
8
+ ④以下のソースコードを実行
9
+ ⑤機械稼働率が更新され、手入力したコメントが消去される
10
+ #使用しているpythonプログラムコード
2
11
  ```python
3
12
  import pandas as pd
4
13
  from openpyxl import Workbook
@@ -29,10 +38,10 @@
29
38
  df.to_excel('202107.xlsx',index=False)
30
39
  ```
31
40
 
32
- 出力されたデータ
41
+ ###上記プログラムにて出力されたエクセルデータ
33
42
  ![イメージ説明](4b9e5ba6b3017e40a48723b1707f3de2.png)
34
43
 
35
- 出力されたエクセルファイルにコメントを残す
44
+ プログラムにて出力されたエクセルファイルに問題があった場合に管理者がコメントを残す。コメントはデータがない一番右の列に入力する
36
45
  ![イメージ説明](e2c96032740b4e29b614df62bd3e6a5a.jpeg)
37
46
 
38
47
  ラズベリーパイで採取したデータは毎日、日付毎にファイル追加されていきます
@@ -40,5 +49,7 @@
40
49
  の集計更新がかかりますが、トラブルなどのコメントは残していきたいと思います。
41
50
 
42
51
  ###ラズベリーパイで採取したデータ
52
+ データの保存方法
43
53
  ![イメージ説明](26728973f1153500684725b4049ba75c.png)
54
+ 光センサーにて1分毎に稼働状況を記録
44
55
  ![イメージ説明](ee9ec5cc3f851df78030f6c28aaab758.jpeg)