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

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

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

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

Q&A

解決済

1回答

422閲覧

ランダムで作成した人名にそれぞれランダム値で身長を設定したい

8960

総合スコア108

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

0グッド

0クリップ

投稿2022/04/06 08:46

前提

Pythonでデータ分析をしている初学者です。

以下のコードで、ランダムでPlayer1~Player16を含むデータフレームを作成したいのですが、それぞれのPlayerに身長をランダムで設定したいと考えています。

Player1~Player16の範囲で1000のサンプル数を作成しようと思っているので
それぞれPlayerあたり、複数の行が作成されます。
Scoreに関してはそれぞれ完全にランダムな値が入るように設定していますが、身長は固定された値を毎回ラベリングしたいです。

身長の範囲は160~190に設定し試みましたが、この後どのように書けばよいのか。

詳しい方、ご教授いただけると幸いです。
よろしくお願いいたします。

達成したいこと

ランダムで作成した人名にそれぞれランダム値で身長を設定したい

該当のソースコード

Python

1## test 2import pandas as pd 3import numpy as np 4 5pd.options.display.float_format="{:.2f}".format 6 7# Create a randomdata frame 8start,end = "2022/3/29","2022/4/5" 9tall,short = "160.0","190.0" 10dates = pd.date_range(start=start,end=end,freq="D") 11players =[f"Player{i}"for i in range(1,16)] 12N = 1000 13dates = np.random.choice(dates,size=N) 14dates.sort() 15players = np.random.choice(players,size=N) 16df = pd.DataFrame({ 17 "Date":dates, 18 "Player":players, 19 "Height":, 20 "Score1":np.random.sample(N) * 0.30 + 1.50, 21 "Score2":np.random.sample(N) * 0.80 + 0.80, 22 "Score3":np.random.sample(N) * 0.40 + 1.50 23}) 24 25df

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

python3.9、VSCode

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下でよいかと思います。

  • players =[(f"Player{i+1}",np.random.randint(160,191)) for i in range(16)]にて名前と身長を対で生成。
  • p_pos = np.random.choice(range(len(players)),size=N)でプレイヤー配列位置をランダムに必要な個数だけ生成。
  • "Player":[players[pos][0] for pos in p_pos],"Height":[players[pos][1] for pos in p_pos],と指定

投稿2022/04/06 09:31

can110

総合スコア38266

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

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

8960

2022/04/06 11:00

理解することが出来ました。 分かりやすく書いていただきました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問