Python DataFrameを作成するその⑤

おはようございます。ちゃあ少佐です。

 

Python 学習21日目

 

今日もDataframe。。。ちょっと飽きてきた。

 

まぁ今日の一発目はDataframeのフィルタリング。

 

  Name Height Weight
0 佐藤 172 53
1 田中 160 50
2 鈴木 165 58
3 長谷川 160 65

 

df_165 = df[df['Height'] >= 165]
print(df_165)

 

結果

  Name Height Weight
0 佐藤 172 53
2 鈴木 165 58

 

df_ans = df[(df['Height'] >= 165) & (df['Weight'] >= 55)]
print(df_ans)

or

df_ans = df.query('Height >= 165 & Weight >= 55')

print(df_ans)

 

 

結果

  Name Height Weight
2 鈴木 165 58

 

df.query('Height >= 165 & Name == "佐藤"')

 

結果

  Name Height Weight
0 佐藤 172 53

 

以上、ちゃあ少佐でした。

Python DataFrameを作成するその④

続いてはDataFrameの限定した値を取得します

 

https://images.pyq.jp/repo/prod/pandas_structure_data_reference/pandas_structure_data_reference_14.jpg

df_loc_rowcol = df.loc['second', 'C']

print(df_loc_rowcol)

 

結果

"g"

 

 

df_loc_rowcol = df.loc[['second', 'fourth'], ['A', 'D']]
print(df_loc_rowcol)

 

結果

A D
second e h
fourth m p

 

☆ポイント☆

DataFrame.iloc[行番号, 列番号]でも絞り込めます。

 

以上、ちゃあ少佐でした。

 

 

Python DataFrameを作成するその③

続いて行の値を取り出します。

 

df = pd.DataFrame([list('abcd'), list('efgh'),
list('ijkl'), list('mnop')],

index=['first', 'second', 'third', 'fourth'],
columns=list('ABCD'))

 

  A B C D
first a b c d
second e f g h
third i j k l
fourth m n o p

 

df_iloc_1 = df.iloc[1]
print(df_iloc_1)

 

A e
B f
C g
D h

以上、ちゃあ少佐でした。

 

 

Python DataFrameを作成するその②

続いてはDataFrameの中の任意の場所だけ抜き出します。

  A B C D
0 a b c d
1 e f g h

 

df_bd = df'B', 'D'

print(df_bd)

   B D
0 b d
1 f h

 ※列がちょっとずれてます

 

df_b = df'B'
print(df_b)

B
0 b
1 f

 

以上、ちゃあ少佐でした。

Python DataFrameを作成するその①

続いてDataFrameを作成します。

 

https://images.pyq.jp/repo/prod/pandas_structure_dataframe/pandas_structure_dataframe_1.jpg

 

import pandas as pd

df = pd.DataFrame([list('abcd'), list('efgh')])
print(df)

df_values = df.values
print(df_values)

df_columns = df.columns
print(df_columns)

df_index = df.index
print(df_index)

 

結果

  0 1 2 3
0 a b c d
1 e f g h

 

array([['a', 'b', 'c', 'd'],['e', 'f', 'g', 'h']], dtype=object)

RangeIndex(start=0, stop=4, step=1)

RangeIndex(start=0, stop=2, step=1)

 

これで列の値をABCDに変えることもできます

df = pd.DataFrame([list('abcd'), list('efgh')],

columns=list('ABCD'))

 

以上、ちゃあ少佐でした。

 

Python Seriesについて

こんにちは。ちゃあ少佐です。

Python 学習20日

今日はSeriesについて勉強しますです。

表の中から一列分だけ抜き出したものをSeriesというらしい。

 

https://images.pyq.jp/repo/prod/pandas_structure_series/pandas_structure_1.jpg

 

import pandas as pd

sample_list = ['a', 'b', 'c', 'd']
series = pd.Series(sample_list)

print(series)

print(list(series.index))

s_values = series.values

s_indexes = series.index.values

print(s_values)

print(s_indexes)

 

結果

0 a

1 b

2 c

3 4

 

[0,1,2,3]

array(['a', 'b', 'c', 'd'], dtype=object) ※NumPyの1次配列で出力される

array(['0', '1', '2', '2'], dtype=object)

 

以上、ちゃあ少佐でした。