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

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

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

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

Q&A

解決済

1回答

2323閲覧

DataFrameに追加する方法を教えてほしいです

BASEBALL-Y

総合スコア67

Python

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

0グッド

0クリップ

投稿2020/02/02 08:21

①以下のDataFrameに1からデータ数分を表示する方法は無いですか?

1,2,3,4,5...のように,追加させたいです.

②indexに年と月と日が表示されているのですが,これをint型の年のみに変える方法があれば教えてほしいです.
Jupiternotebookを使っています.

イメージ説明

以下に,全コードを記載しておきます.

Python

1import numpy as np 2 3import pandas as pd 4from pandas import Series, DataFrame 5 6import pandas_datareader as pdr 7from pandas_datareader import DataReader 8 9import matplotlib.pyplot as plt 10 11from datetime import datetime 12 13import seaborn as sns 14 15%matplotlib inline

Python

1gafa_list=["GOOG","AAPL","FB","AMZN"] 2end = datetime.now() 3start = datetime(end.year-10,end.month,end.day) 4 5for gafa_stock in gafa_list: 6 globals()[gafa_stock] = pdr.DataReader(gafa_stock, "yahoo", stare_year, end_year) 7 8GOOG

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

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

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

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

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

can110

2020/02/02 08:52

②の「int型の年のみに変える」ですが「Dateから年だけを抽出した列を新たに作成したい」 のか「Jupyter上で今年月日が表示されているDate列において年だけを表示したい」 のどちらでしょうか?
BASEBALL-Y

2020/02/02 09:14

後者でお願い致します. 後者が難しい場合,前者でも大丈夫です^^ お手数をおかけしますが,よろしくお願い致します.
guest

回答1

0

ベストアンサー

①はpandasでインデックスとは別のカラムに連番を振るを参考にすることで連番を振ることができます。
ただし、indexdatetime型だとちょっと小細工が必要なようです。

②ですが「Jupyter上で今年月日が表示されているDate列において年だけを表示する」方法は分かりませんので「Dateから年だけを抽出した列を新たに作成」する方法を示します。

Python

1import pandas as pd 2 3# テストデータ 4df = pd.DataFrame({'Date':['2009/12/31', '2010/01/04', '2010/01/05'], 'Val':[12,34,56]}) 5df['Date'] = pd.to_datetime(df['Date']) 6df = df.set_index('Date') 7print(df) 8# Val 9#Date 10#2009-12-31 12 11#2010-01-04 34 12#2010-01-05 56 13 14# datetime型のindexを持つDataFrameに連番列を追加、設定する 15def set_inc_no( df, date_col, inc_col): 16 17 # indexを別列に退避してindexを除去 18 temp_col = date_col + '_temp' 19 df[temp_col] = df.index 20 df = df.reset_index(drop=True) 21 22 # 連番を振る 23 df[inc_col] = pd.Series(list(range(len(df))))+1 24 25 # 退避していた列をindexに戻す 26 df = df.rename(columns={temp_col:date_col}) 27 df = df.set_index(date_col) 28 29 return df 30 31# ①連番を振る 32#df['No'] = pd.Series(list(range(len(df))))+1 # なぜかNaNになる 33df = set_inc_no( df, 'Date', 'No') 34 35# ②年のみを抽出 36df['Year'] = df.index.year 37 38print(df) 39# Val No Year 40#Date 41#2009-12-31 12 1 2009 42#2010-01-04 34 2 2010 43#2010-01-05 56 3 2010

投稿2020/02/02 09:37

can110

総合スコア38233

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問