質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

969閲覧

pythonにてエクセルの行を追加する方法について

emma_0615

総合スコア0

openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/21 21:37

前提・実現したいこと

2つのファイルからそれぞれエクセルデータをpythonで読み込み、データを結合(マージ)し、Aという別のエクセルファイルの最終行に追加したいです。

発生している問題・エラーメッセージ

以下python上で行っています。
結合したデータ(join_data)を行指定(1543行目)し、追加したが、値がすべてNaNになっている。

該当のソースコード

A.loc[1543,:] = join_data

試したこと

join_dataのデータ部分を join_data.values.tolist()でリスト型に変換し、それを新規行に代入してみた。すると、以下のようなエラーメッセージが出てきました。

ValueError: setting an array element with a sequence.

補足情報(FW/ツールのバージョンなど)

join_dataは以下のように複数のdtypeを持っています。

Market_and_Exchange_Names object
As_of_Date_In_Form_YYMMDD_x int64
Report_Date_as_MM_DD_YYYY_x datetime64[ns]
CFTC_Contract_Market_Code_x object
CFTC_Market_Code_x object
...
Conc_Net_LE_8_TDR_Long_All_y float64
Conc_Net_LE_8_TDR_Short_All_y float64
Contract_Units_y object
CFTC_SubGroup_Code object
FutOnly_or_Combined object
Length: 210, dtype: object

join_data.values.tolist()で変換後のデータは以下です。
[['JAPANESE YEN - CHICAGO MERCANTILE EXCHANGE',
210105,
Timestamp('2021-01-05 00:00:00'),
'097741',
'CME ',
0,
97,
206963,
69163,
18973,
2897,
98129,
171246,
170189,
193116,
36774,
13847,
206963,
69163,
18973,
2897,
98129,
171246,
170189,
193116,
36774,
13847,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
12509,
5586,
2746,
600,
2980,
9711,
9166,
13057,
3343,
-548,
100,
33.4,
9.2,
1.4,
47.4,
82.7,
82.2,
93.3,
17.8,
6.7,
100,
33.4,
9.2,
1.4,
47.4,
82.7,
82.2,
93.3,
17.8,
6.7,
0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
115,
37,
16,
14,
45,
33,
91,
55,
115,
37,
16,
14,
45,
33,
91,
55,
0,
0,
0,
0,
0,
0,
0,
0,
26.9,
67.6,
40.3,
75.2,
26.9,
67.6,
40.3,
74.9,
26.9,
67.6,
40.3,
75.2,
26.9,
67.6,
40.3,
74.9,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
'(CONTRACTS OF JPY 12,500,000)',
0,
210105,
Timestamp('2021-01-05 00:00:00'),
'097741',
'CME ',
0,
97,
206963,
4650,
153840,
7,
111617,
7523,
6559,
35351,
21955,
2673,
9332,
559,
0,
170189,
193116,
36774,
13847,
12509,
753,
9065,
0,
3980,
131,
307,
7689,
2873,
681,
-4244,
0,
0,
9166,
13057,
3343,
-548,
100,
2.2,
74.3,
0.0,
53.9,
3.6,
3.2,
17.1,
10.6,
1.3,
4.5,
0.3,
0.0,
82.2,
93.3,
17.8,
6.7,
115,
4.0,
10.0,
nan,
37.0,
11.0,
13.0,
27.0,
19.0,
15.0,
5.0,
nan,
0.0,
91,
55,
26.9,
67.6,
40.3,
75.2,
26.9,
67.6,
40.3,
74.9,
'(CONTRACTS OF JPY 12,500,000)',
'F10',
'FutOnly']]

jupyter notebook pyhton3を利用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ppaul

2021/01/23 00:33

今の質問を見ていると、以下の可能性があります。 1 やりたいことを実現するためにjoinを使うのが適当でない。 2 追加しようとしているデータフレームAの構成と追加するデータが整合していない。 結合前のデータが何で、どうやってjoinし、追加したいデータフレームAは何なのか、そして、その結果は何を期待しているかを示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問