파이썬 판다스 소스코드 메모

Code Snippets 2021. 4. 29. 14:45

판다스가 좋다는 건 알겠지만, 표현이 너무 다양해서 좀처럼 익숙해지지가 않는다. 역시 실제 프로그램을 만들어봐야 된다.

data = pd.Series(np.random.randint(10, size=5), index=list("ABCDE"))
data.index, data.values
data["B"], data.B
data["C"] = 20
data * 10
data[["B", "E"]]
data[2::2]
data[::-1]
data2 = pd.Series({"D":3, "E":5, "F":7})
data, data2
result = data + data2
result[result.isnull()] = data
result[result.isnull()] = data2


# 데이터프레임 만들기 > 딕셔너리 형태
datas = {
    "name": ["dss", "fcamp"],
    "email": ["dss@gmail.com", "fcamp@daum.net"],
}

# 데이터프레임 만들기 > 리스트 형태
# 데이터 양이 많을 때는 이 방식을 이용하는 것이 좋다... 그럴껄??
datas = [
    {"name": "dss", "email": "dss@gmail.com"},
    {"name": "fcamp", "email": "fcamp@daum.net"}
]

df = pd.DataFrame(datas)
df = pd.DataFrame(datas, index=["one", "two"])
df.index
df.columns
df.values
df.loc[1]
df.loc[1]["email"]
df.loc[2] = {"name":"andy", "email":"andy@naver.com"}
df.loc[range(0,2), ["email", "id"]]
df[["id", "name", "email"]]
df.head(2)
df.tail(2)
df["domain"] = df["email"].apply(lambda email: email.split("@")[1].split(".")[0])
df3 = df1.append(df2)
df3.reset_index(drop=True, inplace=True)
df3 = pd.concat([df1, df2]).reset_index(drop=True)
pd.concat([df3, df1], axis=1)
pd.concat([df3, df1], axis=1, join="inner")
result_df = df.groupby("Name").size().reset_index(name="count")
# sort_values: 설정한 컬럼으로 데이터 프레임을 정렬
result_df.sort_values(["count", "Name"], ascending=False, inplace=True)
result_df.reset_index(drop=True, inplace=True)
df.groupby("Name").agg("min").reset_index()
df.describe()
admin