質問: Pythonでpandasの練習をしています。CSVから `read_csv()` でDataFrameを作成し、その特定の列に対して演算を行おうと思っています。例えばこんな感じです。 ``` A 1 12A 2 14A 3 55B 4 99F ``` A列に対して、ある処理 `func()` を行いその結果を新しい列として追加したいと思っています。どのように記載するのが良いのでしょうか? `pandas.DataFrame.append()` かなと思いながら、使い方がよくわかりませんでした。
回答: Seriesを操作する関数は複数ありますので、適切な関数を用いるのがよろしいかと存じます。 下記はスタックオーバーフローに出てきた関数ごとの関連質問の例です。 split関連質問: データフレーム:特定の複数の文字で列を分割したい map関連質問: 関数を適用したときにList化されないようにするには extract関連質問: 列データから正規表現で取り出したデータを、新しい列に書き込むには? ``` import pandas as pd df = pd.DataFrame({'A': ["12A", "55B", "99F"], 'B': ["9:30", "14:00", "23:59"]}) def func(value): # 16進数文字列を10進数に変換する return int(value, 16) # B列をsplitで":"ごとに分割する df_splitted = df['B'].str.split(":", expand = True) df_splitted.columns = ["hour", "minute"] print(df_splitted) # A列にmapでfunc関数を適用する df['map'] = df['A'].map(func) # B列にextractで正規表現を使って:以下を抽出する df['extract'] = df['B'].str.extract(r":(\d{1,2})$", expand = False) print(df) ```