import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(5,2), columns=["A","B"])
df["A"] < 0.5
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(5,2), columns=["A","B"])
df[(df["A"] < 0.5) & (df["B"] > 0.3)]
df.query("A < 0.5 and B > 0.3")
df["Animal"].str.contains("cat")
df.Animal.str.match("cat")
df = pd.DataFrame(np.arange(5), colcumns=["Num"])
def square(x):
return x**2
df["Num"].apply(square)
df["Square"] = df.Num.apply(lambda x: x**2)
df = pd.DataFrame(columns=["phone"])
df.loc[0] = "010-1234-1235"
df.loc[1] = "공일공-일이삼사-1235"
df.loc[2] = "010.1234.일이삼오"
df.loc[3] = "공1공-1234.1이3오"
df["preprocess_phone"] = ''
df.get_preprocess_phone(phone):
mapping_dict = {
"공": "0",
"일": "1",
"이": "2",
"삼": "3",
"사": "4",
"오": "5",
"-": "",
".": "",
}
for key, value in mapping_dict.items():
phone = phone.replace(key, value)
return phone
df["get_preprocess_phone"] = df["phone"].apply(get_preprocess_phone)
df.Sex.replace({"Male": 0, "Female": 1})
df.Sex.replace({"Male": 0, "Female": 1}, inplace=True)
df = pd.DataFrame({'key': ['A','B','C','A','B','C',],
'data1': [1,2,3,1,2,3], 'data2': np.random.randint(0,6,6)})
df.groupby('key') # <pandas.core.groupy.groupby.DataFrameGroupny object at 0x10e3588>
df.groupby('key').sum()
df.groupby(['key','data1']).sum()
df.groupby('key').aggregate(['min', np.median, max])
df.groupby('key').aggregate({'data1': 'min', 'data2': np.sum})
def filter_by_mean(x):
return x['data2'].mean() > 3
df.groupby('key').mean()
df.groupby('key').filter(filter_by_mean)
df.groupby('key').apply(lambda x: x.max() - x.min())
df = pd.read_csv("./univ.csv")
df.head()
df.groupby("시도").get_group("충남")
len(df.groupby("시도").get_group("충남")) # 94
df = pd.DataFrame(
np.random.randn(4,2),
index=[['A','A','B','B'], [1,2,1,2]],
columns=['data1','data2']
)
df = pd.DataFrame(
np.random.randn(4,2),
columns=[["A","A","B","B"],["1","2","1","2"]]
)
df["A"]
df["A"]["1"]
df.pivot_table(
index='sex', columns='class', values='survived',
aggfunc=np.mean
)
피리부는 사아니를 따라가는 어린이들중 남자 어린이와 여자 어린이의 평균 연령을 표로 출력
쥐와 아이들의 정보는 the_pied_piper_of_hamelin.csv 파일에 저장되어 있다
- 피리부는 사나이 데이터에서 아이들만 골라내는데 마스킹 연산을
- 피리부는 사나이를 따라간 아이들의 일차별 연령을 계산하는데 groupby 함수를
- 아이들의 일차별 연령을 성별로 나누어 표로 출력하는데 pivot table을 이용하여라
import pandas as pd
import numpy as np
# 파일을 읽어서 코드를 작성해보세요
# 경로: "./data/the_pied_piper_of_hamelin.csv"
import pandas as pd
import numpy as np
# 파일을 읽어서 코드를 작성해보세요
# 경로: "./data/the_pied_piper_of_hamelin.csv"
df = pd.read_csv("./data/the_pied_piper_of_hamelin.csv")
print(df, "\n")
df = df.loc[df['구분']=='Child']
print(df, "\n")
x = df.groupby('일차').mean()
print(x, "\n")
y = df.pivot_table(
index='일차', columns='성별', values='나이',
aggfunc = np.mean
)
print(y, "\n")
>>> #y값만
>>>성별 Female Male
>>>일차
>>>3 9.500000 9.000000
>>>4 9.000000 6.333333
>>>5 8.666667 8.833333
>>>6 9.411765 7.846154