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

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

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

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

Q&A

解決済

1回答

864閲覧

Pythonにてcsvで指定した語句(複数)を別csvデータから行で抽出したい

DEXIZA

総合スコア0

Python

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

0グッド

0クリップ

投稿2021/01/19 18:09

前提・実現したいこと

Pythonにて
あるcsvにて日付を記入したものを抽出し
別のcsvデータのインデックスを検索しデータを抽出、csvに出力(もしくはPandas形式にしたい)

箇条書き
① CSV1→日付けのみが入っている(カラム"営業日"のみ)
② CSV2→CSV1で指定した日(複数)を元に行情報を抽出(CSV2はカラムが複数あるが"営業日"は同じ)

該当のソースコード

Python

1 2csv_files222 = glob.glob('./*.csv') 3list2 = []#リストの初期化 4for file in csv_files222: 5 list2.append(pd.read_csv(file,encoding="cp932"))#リストにcsvファイルを追加していく 6 7csv1 = pd.concat(list2)#リストをpandas化 8csv1_i = csv1.set_index("営業日") 9 10#----- 11oomoto = pd.read_csv("./csv2.csv",encoding="cp932") 12oomoto2=len(oomoto) 13stock=[] 14for i in range(oomoto2): 15 i+1#移動要素 16 oomotokurikaesi=oomoto.loc[i]#読み込んだpdを分解し変数に入れる 17 aaa=dff_i.loc[oomotokurikaesi]#同時に別のCSVから行を抽出し変数に代入 18 stock.append(aaa)#更に別の空リストに上のものを追加していく 19 20#ここから下は、上であまりにうまくいかないのでcsvで書き出してみました。 21with open('stock.csv', 'w') as file: 22 writer = csv.writer(file, lineterminator='\n') 23 writer.writerows(stock)

ここまでは一応コードは動作するのですが、全く思い通りではない動作です
結果的に出来上がったcsvを見ると

元ファイルで言うcolumnが回数分羅列されてしまっています

column column column column column column column
column column column column column column column
column column column column column column column
(こんな感じ・・・)

恐らく、.locで抽出しappendで追加する際、columnと本来ほしい数値の2次元になっている事で
writerで記述した際にcolumnのみ行追加されてしまっているのかと思われるのですが。。。

今の自分の知識ではここからどうしたら良いかわかりません・・・
宜しくお願い致します!

一応試したこと

aaaaaaaaaaaaaaa=pd.concat(aaa)
→first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"

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

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

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

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

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

DEXIZA

2021/01/21 07:31

すごいです、正直英語は全くなのでこれから読み進めますが、図だけで自分がやりたい事っぽいので 解読したいと思います!
DEXIZA

2021/01/22 17:14

こちら、その後仰る内容で解決できました。 今まで語句を「検索」と「一致」というExcelでいうvlookupの考えに凝り固まってましたが 結合させて整形させて同じ結果を得るというのは目から鱗でした。ありがとうございます。
guest

回答1

0

自己解決

こちらの質問は、頂いた方の投稿種類?が違うからなのか「解決」ボタンがなかった為
恥ずかしながらコピペをし、自己解決という形で閉じさせていただきます。

dameo様、ありがとうございます。

ーー以下コピペ

恐らくやりたいことは↓に近いことで、mergeのhowにinnerを指定したケースだと思います。
https://pandas.pydata.org/docs/getting_started/intro_tutorials/08_combine_dataframes.html

投稿2021/04/25 05:40

DEXIZA

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問