パンダ匹
1.dicttypeオブジェクトがstring typeの場合dicttypeに変更
1)方法1
インデックスはKey値、SeriesはValue
キー値をインデックスに設定すると、to dict()[必要な値]
loc:インデックス値自体
iloc:インデックスの順序(0、1、...)
2つのカラムを1つのsetタイプのデータにマージ
方法1)mapperを作成し、標準列でマージする
on=標準列名->2つのデータフレームの列名は同じでなければなりません.
13) groupby groupby 2番->複数のインデックスを作成する すべての行(sort values,value counts)
14)2つのカラムを比較して、新しい条件を満たすカラムを作成する
"""
Description:
'{'a','b','c'}' -> {'a','b','c'}
"""
from ast import literal_eval
series.map(lambda x: literal_eval(x))
2.特定の文字列を含むキー値の検索"""
Description:
{'aaa':1, 'bbb':2, 'ccc':3} 에서 key값에 aaa를 포함한 키 값
"""
[k for k in dict.keys() if '문자열' in k]
3. series to list"""
Description
(AS-IS)
df = pd.DataFrame({
'column1' : [1,2,3],
'column2' : ['a','b','c']
})
(TO-BE)
['a','b','c']
"""
df['column2'].to_list()
4.DataFrameからJSONへのフォーマット変換1)方法1
インデックスはKey値、SeriesはValue
"""
Description:
(AS-IS)
df = pd.DataFrame({
'column1' : [1,2,3],
'column2' : ['a','b','c']
})
(TO-BE)
{0: 'a', 1: 'b', 2: 'c'}
"""
dict(zip(df.index, df['column2']))
2)方法2キー値をインデックスに設定すると、to dict()[必要な値]
df.set_index('column1').to_dict()['column2']
5)json文字列に変換"""
Description:
(AS-IS)
{'id': 1, 'username': 'je', 'email': '[email protected]'}
(TO-BE)
'{"id": 1, "username": "je", "email": "[email protected]"}'
"""
import json
json_objects = {
'id': 1,
'username': 'je',
'email': '[email protected]'
}
json.dumps(json_objects)
6)データフレームのインデックスをカラムにインポートする"""
Description:
(AS-IS)
| column1 | column2 |
| 1 | 'a' |
| 2 | 'b' |
| 3 | 'c' |
(TO-BE)
| new_col | column1 | column2 |
| 0 | 1 | 'a' |
| 1 | 2 | 'b' |
| 2 | 3 | 'c' |
"""
df.reset_index().rename(columns={'index':'new_col'})
7)可視化時のハングル設定import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib import rc, font_manager
for i in font_manager.fontManager.ttflist:
print(i.name, i.fname)
font_fname = i.fname # 경로/글씨체.ttf
prop = font_manager.FontProperties(fname=font_fname)
mpl.rcParams['font.family'] = 'NanumGothic'
mpl.rcParams['axes.unicode_minus'] = False
# 세션 초기화
font_maager._rebuild()
plt.title('한글 테스트')
8)一部の列のNull値を持つ行を削除する"""
Description:
(AS-IS)
| column1 | column2 |
| 1 | |
| 2 | 'b' |
| 3 | 'c' |
(TO-BE)
| column1 | column2 |
| 2 | 'b' |
| 3 | 'c' |
"""
df_null = pd.DataFrame({
'column1' : [1,2,3],
'column2' : ['','b','c']
})
# 1) null 값을 np.nan으로 변경
df_null['column2'].replace('', np.nan, inplace=True)
# 2) np.nan인 행 삭제
df_null.dropna(subset=['column2'])
# 2_) or null 값을 0으로 변경
df_null.fillna(0)
9) loc, ilocloc:インデックス値自体
iloc:インデックスの順序(0、1、...)
"""
Description:
(AS-IS)
| column1 | column2 |
1 | 2 | 'b' |
2 | 3 | 'c' |
(TO-BE)
column1 2
column2 b
Name: 1, dtype: object
-> series 형태로 반환
"""
# ㅣoc 사용
df.loc[1]
# iloc 사용
df.iloc[0]
10)集合にグループ化2つのカラムを1つのsetタイプのデータにマージ
"""
Description:
(AS-IS)
| column1 | column2 |
| 2 | 'b' |
| 3 | 'c' |
(TO-BE)
| column1 | column2 | set_col |
| 2 | 'b' | {2,b}
| 3 | 'c' | {3,c}
"""
df.loc[:, 'set_col'] = df[['column1','column2']].agg(set, axis=1)
11)json鍵に対応するデータのインポートmapper = {
1: 'first',
2: 'second',
3: 'third',
4: 'fourth',
5: 'fifth'
}
# return : 'third'
mapper[3]
# return : 'third'
mapperget(3)
# ['first', 'second', 'third'] (리스트를 return)
lst = [1,2,3]
list(map(lambda x: json.get(x), lst))
12)カラム固有の値を入力方法1)mapperを作成し、標準列でマージする
"""
Description:
mapper = df.set_index('기준컬럼명')['나타낼 컬럼명'].to_dict()
병합할df.loc[:, 'column'] = 병합할df.loc[:, '기준컬럼명'].map(mapper명)
"""
df = pd.DataFrame({
'column1' : ['a','b','c'],
'column2' : ['apple','bike','circle']
})
# mapper 생성
mapper = df.set_index('column1')['column2'].to_dict()
# 새로운 DataFrame에 병합
new_df = pd.DataFrame({
'column1' : [1,2,3],
'column2' : ['a','b','c']
})
new_df.loc[:, 'new_col'] = new_df.loc[:, 'column2'].map(mapper)
方法2)mergeon=標準列名->2つのデータフレームの列名は同じでなければなりません.
13) groupby
df.groupby('column1').apply(lambda x: x.groupby('column2').size())
df.groupby('column1').apply(lambda x: x.sort_values(by='기준'))
をリストします.14)2つのカラムを比較して、新しい条件を満たすカラムを作成する
df.apply(lambda x: True if x['column1'] in x['column2']
else False, axis=1)
15)特定の値を含む行の削除"""
Description:
(AS-IS)
| column1 | column2 |
| a | apple |
| b | bike |
| c | circle |
(TO-BE)
'bike'라는 특정 문자열을 가진 행 제거
| column1 | column2 |
| a | apple |
| c | circle |
"""
rm_row = df['column2'].isin(['bike'])
df[~rm_row]
16)2つの列を結合して演算する"""
Description:
(AS-IS)
| column1 | column2 |
| a | apple |
| b | bike |
| c | circle |
(TO-BE)
[('a', 'apple'), ('b', 'bike'), ('c', 'circle')]
"""
list(zip(df['column1'], df['column2']))
Reference
この問題について(パンダ匹), 我々は、より多くの情報をここで見つけました https://velog.io/@juliy9812/판다스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol