【書式】
空データフレームの作成 : df=pd.DataFrame()
列データの追加 : df["列名"]=列データ
【コード】
import pandas as pd
dfB=pd.DataFrame()
dfB["国語"]=dfA["国語"]
dfB
【結果】
【書式】
行データの追加 : df.append(行データ)
【コード】
import pandas as pd
dfB=pd.DataFrame()
dfB=dfB.append(dfA.iloc[0])
dfB
【結果】
AttributeError Traceback (most recent call last)
3
4 dfB=pd.DataFrame()
----> 5 dfB=dfB.append(dfA.iloc[0])
6
7 dfB
/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py in __getattr__(self, name)
5987 ):
5988 return self[name]
-> 5989 return object.__getattribute__(self, name)
5990
5991 def __setattr__(self, name: str, value) -> None:
AttributeError: 'DataFrame' object has no attribute 'append'
エラー・・・・・・
2022/1/22にリリースされたpandas 1.4.0にて、DataFrame型、Series型で提供されているappendメソッドが非推奨となりました。らしい。
代わりに推奨されているconcatで流してみる。
【書式】
dfB=pd.concat([dfB,dfA.iloc[0]])
【コード】
import pandas as pd
dfB=pd.DataFrame()
dfB=pd.concat([dfB,dfA.iloc[0]])
print(dfB)
print(dfB.index)
【結果】
0
国語 1
数学 2
理科 3
学生番号 A01
Index(['国語', '数学', '理科', '学生番号'], dtype='object')
【書式】
【コード】
import pandas as pd
dfB=pd.DataFrame()
dfB=pd.concat([dfB,dfA])
print(dfB)
print(dfB.index)
【結果】
国語 数学 理科 学生番号
名前
一郎 1 2 3 A01
二郎 4 5 6 B02
三郎 7 8 9 C01
四郎 10 11 12 A02
五郎 13 14 15 A03
六郎 16 17 18 C02
Index(['一郎', '二郎', '三郎', '四郎', '五郎', '六郎'], dtype='object', name='名前')
【書式】
df.drop("列名",axis=1)
【コード】
import pandas as pd
# 国語列を削除する
【結果】
【書式】
df.drop("行名")
【コード】
import pandas as pd
# 二郎(2行目)を削除する
print(dfA)
【結果】
国語 数学 理科 学生番号
名前
一郎 1 2 3 A01
三郎 7 8 9 C01
四郎 10 11 12 A02
五郎 13 14 15 A03
六郎 16 17 18 C02
【書式】
df["列名"]=値
【コード】
import pandas as pd
# 国語が10点以上のデータを抽出する
print(dfA["国語"]>10)
print(type(dfA["国語"]>10))
【結果】
名前
一郎 False
二郎 False
三郎 False
四郎 False
五郎 True
六郎 True
Name: 国語, dtype: bool
<class 'pandas.core.series.Series'>
条件に合致汁ものだけが抽出される仕組みらしい。この場合、五郎と六郎のデータが抽出されることになりそう。
【書式】
df=df[条件]
この条件が、TAKE4 における「dfA["国語"]>10」になる。
【コード】
import pandas as pd
print(dfB)
【結果】
国語 数学 理科 学生番号
名前
五郎 13 14 15 A03
六郎 16 17 18 C02
【書式】
【コード】
import pandas as pd
print(dfB)
【結果】
国語 数学 理科 学生番号
名前
六郎 16 17 18 C02