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

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

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

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

Q&A

解決済

2回答

561閲覧

teiseipython データフレーム結合

rikuanpg9294

総合スコア15

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

0グッド

0クリップ

投稿2021/06/08 02:37

編集2021/06/08 02:40

一枚目のデータフレームの画像を2枚目のデータフレムに追加したいのですが、その時に、indexの個数分一枚目の レース名を加えたいのですがうまくいきません。どのようにすればできるでしょうか?ご教授お願いいたします。

![イメージ説明]イメージ説明

試したこと

python

1pre_results = race_name.merge(pre_results ,left_index=True,right_index=True, how='left')

重複が自動で削除されデータの多くがnanになってしまった。

完成イメージ
///////////////////レース名  race_place 馬場指数
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010101 3歳未勝利 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10
201506010103 3歳新馬 中山 10

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

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

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

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

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

guest

回答2

0

再現テストをやってみましたが、普通に動いています。
データがどこか違うのかもしれません。

python

1>>> print(race_name) 2 レース名 3201506010101 3歳未勝利 4201506010103 3歳新馬 5>>> print(pre_results) 6 race_place 馬場指数 7201506010101 中山 10 8201506010101 中山 10 9201506010101 中山 10 10201506010101 中山 10 11201506010101 中山 10 12201506010101 中山 10 13201506010101 中山 10 14201506010101 中山 10 15201506010101 中山 10 16201506010101 中山 10 17201506010101 中山 10 18201506010101 中山 10 19201506010101 中山 10 20201506010101 中山 10 21201506010101 中山 10 22201506010103 中山 10 23201506010103 中山 10 24201506010103 中山 10 25201506010103 中山 10 26201506010103 中山 10 27201506010103 中山 10 28201506010103 中山 10 29201506010103 中山 10 30201506010103 中山 10 31201506010103 中山 10 32201506010103 中山 10 33>>> pre_results = race_name.merge(pre_results ,left_index=True,right_index=True, how='left') 34>>> print(pre_results) 35 レース名 race_place 馬場指数 36201506010101 3歳未勝利 中山 10 37201506010101 3歳未勝利 中山 10 38201506010101 3歳未勝利 中山 10 39201506010101 3歳未勝利 中山 10 40201506010101 3歳未勝利 中山 10 41201506010101 3歳未勝利 中山 10 42201506010101 3歳未勝利 中山 10 43201506010101 3歳未勝利 中山 10 44201506010101 3歳未勝利 中山 10 45201506010101 3歳未勝利 中山 10 46201506010101 3歳未勝利 中山 10 47201506010101 3歳未勝利 中山 10 48201506010101 3歳未勝利 中山 10 49201506010101 3歳未勝利 中山 10 50201506010101 3歳未勝利 中山 10 51201506010103 3歳新馬 中山 10 52201506010103 3歳新馬 中山 10 53201506010103 3歳新馬 中山 10 54201506010103 3歳新馬 中山 10 55201506010103 3歳新馬 中山 10 56201506010103 3歳新馬 中山 10 57201506010103 3歳新馬 中山 10 58201506010103 3歳新馬 中山 10 59201506010103 3歳新馬 中山 10 60201506010103 3歳新馬 中山 10 61201506010103 3歳新馬 中山 10

当方でのテストデータ作成は、以下のように行っていますので、これで作成したデータとrikuanpg9294さんのデータを比べてみてください。特にtype(race_name.index)と、type(pre_results.index)は気をつけてみてください。

python

1import pandas as pd 2import io 3 4indata = '''レース名 5201506010101 3歳未勝利 6201506010103 3歳新馬''' 7 8with io.StringIO(indata) as f: 9 race_name = pd.read_csv(f, sep=' +', engine='python') 10 11indata2 = '''race_place 馬場指数 12201506010101 中山 10 13201506010101 中山 10 14201506010101 中山 10 15201506010101 中山 10 16201506010101 中山 10 17201506010101 中山 10 18201506010101 中山 10 19201506010101 中山 10 20201506010101 中山 10 21201506010101 中山 10 22201506010101 中山 10 23201506010101 中山 10 24201506010101 中山 10 25201506010101 中山 10 26201506010101 中山 10 27201506010103 中山 10 28201506010103 中山 10 29201506010103 中山 10 30201506010103 中山 10 31201506010103 中山 10 32201506010103 中山 10 33201506010103 中山 10 34201506010103 中山 10 35201506010103 中山 10 36201506010103 中山 10 37201506010103 中山 10''' 38 39with io.StringIO(indata2) as f: 40 pre_results = pd.read_csv(f, sep=' +', engine='python')

投稿2021/06/08 06:00

ppaul

総合スコア24666

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

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

0

ベストアンサー

変数名からの推測なので違うかもしれませんが、やりたいことは right join なのではないですか?

python

1pre_results = race_name.merge(pre_results, left_index=True, right_index=True, how='right')

投稿2021/06/08 03:17

bsdfan

総合スコア4567

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

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

rikuanpg9294

2021/06/08 03:41

ありがとうございます。 試してみたのですが、レース名が全てNan担ってしまいました。 一枚目の画像は20629 rows × 1 columns 2枚目の画像は139076 rows × 22 columns 馬名一頭ごとにrace_id(indexのこと)をつけているので rowsの数が違うのと、同じレースに走っている場合、同じindexがついています。また、一枚目の画像のデータフレームには同じindexはありません。 同じレース名をつけたいので、どのようにすればよいでしょうか? 説明が下手で申し訳ございません。
bsdfan

2021/06/08 03:54

print(type(race_name.index[0]), type(pre_results.index[0])) を確認してみてもらえますか。片方が数値、片方が文字列だったりしてないでしょうか。 indexはユニークになるものを持ってきたほうがいいですよ。 特になければ単なる連番でもいいです。 race_idは独立したカラムにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問