πΌ ΠΠ°ΠΊ ΡΠ±ΡΠ°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ: ΠΏΡΠΎΡΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ pandas
Π§ΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π² pandas, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ reset_index()
.
import pandas as pd
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ DataFrame Ρ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ
data = {'ΠΠΎΡΠΎΠ΄Π°': ['ΠΠΎΡΠΊΠ²Π°', 'Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³', 'ΠΠΎΠ²ΠΎΡΠΈΠ±ΠΈΡΡΠΊ'],
'Π―Π·ΡΠΊ': ['Π ΡΡΡΠΊΠΈΠΉ', 'Π ΡΡΡΠΊΠΈΠΉ', 'Π ΡΡΡΠΊΠΈΠΉ'],
'ΠΠ°ΡΠ΅Π»Π΅Π½ΠΈΠ΅': [12678079, 5398064, 1625631]}
df = pd.DataFrame(data)
df.set_index(['ΠΠΎΡΠΎΠ΄Π°', 'Π―Π·ΡΠΊ'], inplace=True)
# Π£Π±ΠΈΡΠ°Π΅ΠΌ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ
df.reset_index(inplace=True)
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° reset_index()
ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½, ΠΈ DataFrame Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
pandas: ΠΊΠ°ΠΊ ΡΠ±ΡΠ°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pandas Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ . Π pandas Π΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΡ Π² ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² pandas ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ reset_index()
. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ DataFrame Π² DataFrame Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠ°Π½ΡΡ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
import pandas as pd
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
index = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'z')], names=['Index_1', 'Index_2'])
df = pd.DataFrame(data, index=index)
# ΠΡΠ²ΠΎΠ΄ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ DataFrame
print("ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ DataFrame:")
print(df)
# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°
df_reset = df.reset_index()
# ΠΡΠ²ΠΎΠ΄ DataFrame ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°
print("DataFrame ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°:")
print(df_reset)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ DataFrame Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ pd.MultiIndex.from_tuples()
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ reset_index()
, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² DataFrame Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠ²
ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΠΎΠ»Π±ΡΠ°Ρ
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ reset_index()
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ drop=True
. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π±ΡΠ΄ΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ Π² ΡΡΠΎΠ»Π±ΡΡ. ΠΡΠΈΠΌΠ΅Ρ:
import pandas as pd
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
index = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'z')], names=['Index_1', 'Index_2'])
df = pd.DataFrame(data, index=index)
# ΠΡΠ²ΠΎΠ΄ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ DataFrame
print("ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ DataFrame:")
print(df)
# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠ²
df_reset = df.reset_index(drop=True)
# ΠΡΠ²ΠΎΠ΄ DataFrame ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠ²
print("DataFrame ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠ²:")
print(df_reset)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ drop=True
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ reset_index()
. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΠΎΠ»Π±ΡΠ°Ρ
. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠ»Π±Π΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΡ 'level_0', 'level_1' ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΈΠΌΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ col_level
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ reset_index()
. ΠΡΠΈΠΌΠ΅Ρ:
import pandas as pd
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
index = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'z')], names=['Index_1', 'Index_2'])
df = pd.DataFrame(data, index=index)
# ΠΡΠ²ΠΎΠ΄ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ DataFrame
print("ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ DataFrame:")
print(df)
# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ°
df_reset = df.reset_index(col_level=1)
# ΠΡΠ²ΠΎΠ΄ DataFrame ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ°
print("DataFrame ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ°:")
print(df_reset)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ col_level=1
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ reset_index()
Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ±ΡΠ°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π² pandas. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ reset_index()
Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΠΎΠ»Π±ΡΠ°Ρ
ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π² pandas ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΡ
ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ.