Pandasで作成したデータフレームに関数で求めたある値についての列を追加する
Q&A
Closed
解決したいこと
Pandasで、作成した身長体重に関するデータフレームdfがあるとします。
また、Pythonの関数で作成したBMI計算を行う関数 def calcBMI(Height,Weight)があるとします。
いま、このcalcBMI()でBMIを求めたとしてこのBMIをdfに列追加したいのですが
その方法がわかりません。
やったこと
元のデータフレーム
df = pd.read_csv('500_Person_Gender_Height_Weight_Index.csv', header = 0)
BMIを求める新しいデータフレームを作成
df_calcbmi = df[["Height","Weight"]]
BMI計算
def calcbmi(Height,Weight):
return Weight / ((Height/100) ** 2)
作成したデータフレームを元のデータフレームに合体
df2 = pd.concat([df,df_calcbmi],index=["BMI"],axis=1)
df2.columns=["Gender","Height","Weight","Index","BMI"] #列見出し
df.append(df2)
df.head() # 先頭5行表示
問題
TypeError Traceback (most recent call last)
in
7 return Weight / ((Height/100) ** 2)
8 # 作成したデータフレームを元のデータフレームに合体
----> 9 df2 = pd.concat([df,df_calcbmi],index=["BMI"],axis=1)
10 df2.columns=["Gender","Height","Weight","Index","BMI"] #列見出し
11 df.append(df2)
~\anaconda3\lib\site-packages\pandas\util_decorators.py in wrapper(*args, **kwargs)
309 stacklevel=stacklevel,
310 )
--> 311 return func(*args, **kwargs)
312
313 return wrapper
TypeError: concat() got an unexpected keyword argument 'index'