Pythonを使用してPandasデータフレームに曜日カラムを作成する
2023-10-01 08:41:23
質問内容
Pythonを使用してPandasデータフレームに曜日カラムを作成する。
csvファイルをpandasのdataframeに読み込み、日付の列を文字列フォーマットから日付オブジェクトにパースし、曜日を示す新しい列を生成したいと思います。
これは私が試していることです。
私がやりたいことは、次のようなことです。
import pandas as pd
import csv
df = pd.read_csv('data.csv', parse_dates=['date']))
df['day-of-week'] = df['date'].weekday()
AttributeError: 'Series' object has no attribute 'weekday'
ご協力ありがとうございました。 ジェームズ
どのように解決するのですか?
Pandas 0.23以上
使用方法
pandas.Series.dt.day_name()
というように
pandas.Timestamp.weekday_name
は非推奨とされているからです。
import pandas as pd
df = pd.DataFrame({'my_dates':['2015-01-01','2015-01-02','2015-01-03'],'myvals':[1,2,3]})
df['my_dates'] = pd.to_datetime(df['my_dates'])
df['day_of_week'] = df['my_dates'].dt.day_name()
出力します。
my_dates myvals day_of_week
0 2015-01-01 1 Thursday
1 2015-01-02 2 Friday
2 2015-01-03 3 Saturday
Pandas 0.18.1+
ユーザーのjezraelさんが下記で指摘されているように
dt.weekday_name
はバージョン 0.18.1 で追加された
Pandas ドキュメント
import pandas as pd
df = pd.DataFrame({'my_dates':['2015-01-01','2015-01-02','2015-01-03'],'myvals':[1,2,3]})
df['my_dates'] = pd.to_datetime(df['my_dates'])
df['day_of_week'] = df['my_dates'].dt.weekday_name
出力します。
my_dates myvals day_of_week
0 2015-01-01 1 Thursday
1 2015-01-02 2 Friday
2 2015-01-03 3 Saturday
オリジナルの回答
これを使う。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.dayofweek.html
こちらをご覧ください。
DataFrameのDatetimeカラムの曜日/日付の取得
もし、整数の代わりに文字列が欲しい場合は、以下のようにします。
import pandas as pd
df = pd.DataFrame({'my_dates':['2015-01-01','2015-01-02','2015-01-03'],'myvals':[1,2,3]})
df['my_dates'] = pd.to_datetime(df['my_dates'])
df['day_of_week'] = df['my_dates'].dt.dayofweek
days = {0:'Mon',1:'Tues',2:'Weds',3:'Thurs',4:'Fri',5:'Sat',6:'Sun'}
df['day_of_week'] = df['day_of_week'].apply(lambda x: days[x])
出力します。
my_dates myvals day_of_week
0 2015-01-01 1 Thurs
1 2015-01-02 2 Fri
2 2015-01-01 3 Thurs
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?