Pandas DataFrames-ൽ വരികൾ ഫിൽട്ടർ ചെയ്യുന്നു
ഡാറ്റാ കൃത്രിമത്വത്തിനും വിശകലനത്തിനുമായി പൈത്തണിലെ ശക്തമായ ഒരു ലൈബ്രറിയാണ് പാണ്ടസ്. SQL-ൻ്റെ SELECT * FROM table WHERE column_name = some_value എന്നതിന് സമാനമായ കോളം മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി ഡാറ്റാഫ്രെയിമിൽ നിന്ന് വരികൾ തിരഞ്ഞെടുക്കുന്നതാണ് ഒരു പൊതു ചുമതല.
നിങ്ങളുടെ ഡാറ്റ കാര്യക്ഷമമായി ഫിൽട്ടർ ചെയ്യുന്നത് എളുപ്പമാക്കിക്കൊണ്ട്, പാണ്ടസിൽ ഇത് നേടുന്നതിന് ഈ ഗൈഡ് വിവിധ രീതികളിലൂടെ നിങ്ങളെ നയിക്കും. നിങ്ങളൊരു തുടക്കക്കാരനായാലും പരിചയസമ്പന്നനായ ഉപയോക്താവായാലും, ഈ നുറുങ്ങുകൾ നിങ്ങളുടെ ഡാറ്റ കൈകാര്യം ചെയ്യാനുള്ള കഴിവ് വർദ്ധിപ്പിക്കും.
കമാൻഡ് | വിവരണം |
---|---|
pd.DataFrame(data) | ഒരു ഡാറ്റാ നിഘണ്ടുവിൽ നിന്ന് ഒരു DataFrame സൃഷ്ടിക്കുന്നു. |
df[column_name] | പേര് പ്രകാരം ഡാറ്റാഫ്രെയിമിലെ ഒരു കോളം ആക്സസ് ചെയ്യുന്നു. |
df[condition] | ഒരു കോളത്തിൽ പ്രയോഗിച്ചിരിക്കുന്ന ഒരു വ്യവസ്ഥയെ അടിസ്ഥാനമാക്കി DataFrame ഫിൽട്ടർ ചെയ്യുന്നു. |
print(selected_rows) | ഡാറ്റാഫ്രെയിം അല്ലെങ്കിൽ അതിൻ്റെ ഒരു ഉപവിഭാഗം കൺസോളിലേക്ക് പ്രിൻ്റ് ചെയ്യുന്നു. |
df[df['Age'] >df[df['Age'] > 25] | 'പ്രായം' കോളം മൂല്യങ്ങൾ 25-ൽ കൂടുതലുള്ള വരികൾ തിരഞ്ഞെടുക്കുന്നു. |
df[df['City'] == 'Chicago'] | 'സിറ്റി' കോളം മൂല്യങ്ങൾ 'ഷിക്കാഗോ' എന്നതിന് തുല്യമായ വരികൾ തിരഞ്ഞെടുക്കുന്നു. |
പാണ്ടസിലെ ഡാറ്റാഫ്രെയിം വരി തിരഞ്ഞെടുക്കൽ മനസ്സിലാക്കുന്നു
പൈത്തണിലെ പാണ്ടാസ് ലൈബ്രറി ഉപയോഗിച്ച് കോളം മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി ഡാറ്റാഫ്രെയിമിൽ നിന്ന് വരികൾ എങ്ങനെ തിരഞ്ഞെടുക്കാമെന്ന് നൽകിയിരിക്കുന്ന സ്ക്രിപ്റ്റുകൾ കാണിക്കുന്നു. പാണ്ഡാസ് ലൈബ്രറി ഇറക്കുമതി ചെയ്തുകൊണ്ടാണ് ആദ്യ സ്ക്രിപ്റ്റ് ആരംഭിക്കുന്നത് import pandas as pd കമാൻഡ്. ഇത് ഡാറ്റയുടെ ഒരു നിഘണ്ടു ഉപയോഗിച്ച് ഒരു സാമ്പിൾ ഡാറ്റഫ്രെയിം സൃഷ്ടിക്കുന്നു, അത് ഒരു ഡാറ്റ ഫ്രെയിമിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു pd.DataFrame(data) കമാൻഡ്. സ്ക്രിപ്റ്റ് പിന്നീട് വരി തിരഞ്ഞെടുക്കുന്നതിനുള്ള രണ്ട് രീതികൾ ചിത്രീകരിക്കുന്നു: 'പ്രായം' കോളം മൂല്യം 25-ൽ കൂടുതലുള്ള വരികൾ തിരഞ്ഞെടുക്കുന്നു df[df['Age'] > 25], കൂടാതെ 'സിറ്റി' കോളം മൂല്യം 'ഷിക്കാഗോ' ഉപയോഗിക്കുന്ന വരികൾ തിരഞ്ഞെടുക്കുന്നു df[df['City'] == 'Chicago']. ഈ ഫിൽട്ടർ ചെയ്ത ഡാറ്റ ഫ്രെയിമുകൾ ഉപയോഗിച്ച് പ്രിൻ്റ് ചെയ്യുന്നു print() തിരഞ്ഞെടുത്ത വരികൾ പ്രദർശിപ്പിക്കുന്നതിനുള്ള പ്രവർത്തനം.
രണ്ടാമത്തെ സ്ക്രിപ്റ്റ് സമാനമായ ഘടന പിന്തുടരുന്നു, എന്നാൽ വ്യത്യസ്ത ഡാറ്റയും തിരഞ്ഞെടുക്കൽ മാനദണ്ഡങ്ങളും ഉപയോഗിക്കുന്നു. 'ഉൽപ്പന്നം', 'വില', 'സ്റ്റോക്ക്' നിരകൾ എന്നിവയുൾപ്പെടെയുള്ള ഉൽപ്പന്ന വിവരങ്ങളുള്ള ഒരു ഡാറ്റഫ്രെയിം ഇത് സൃഷ്ടിക്കുന്നു. 'വില' 200-നേക്കാൾ കുറവോ അതിന് തുല്യമോ ഉള്ളിടത്ത് വരികൾ തിരഞ്ഞെടുക്കപ്പെടുന്നു df[df['Price'] <= 200], കൂടാതെ 'സ്റ്റോക്ക്' 40-ൽ കൂടുതൽ ഉപയോഗിക്കുന്നിടത്ത് df[df['Stock'] > 40]. ഈ സ്ക്രിപ്റ്റുകളുടെ ഉദ്ദേശ്യം, ഒരു കോളം മൂല്യത്തെ അടിസ്ഥാനമാക്കി ഒരു പട്ടികയിൽ നിന്ന് വരികൾ തിരഞ്ഞെടുക്കുന്നതിന് നിങ്ങൾ എങ്ങനെ ഒരു SQL അന്വേഷണം ഉപയോഗിക്കും എന്നതിന് സമാനമായി, നിർദ്ദിഷ്ട വ്യവസ്ഥകളെ അടിസ്ഥാനമാക്കി DataFrame വരികൾ എങ്ങനെ ഫിൽട്ടർ ചെയ്യാമെന്ന് കാണിക്കുക എന്നതാണ്. ഈ കമാൻഡുകൾ മനസ്സിലാക്കുകയും പ്രയോഗിക്കുകയും ചെയ്യുന്നതിലൂടെ, നിങ്ങളുടെ ഡാറ്റാഫ്രെയിമുകളിലെ ഡാറ്റ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യാനും വിശകലനം ചെയ്യാനും നിങ്ങൾക്ക് കഴിയും.
പാണ്ടസിലെ കോളം മൂല്യങ്ങൾ ഉപയോഗിച്ച് ഒരു ഡാറ്റാഫ്രെയിമിലെ വരികൾ തിരഞ്ഞെടുക്കുന്നു
പാണ്ടസ് ലൈബ്രറിയോടുകൂടിയ പൈത്തൺ
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
കോളം മാനദണ്ഡത്തെ അടിസ്ഥാനമാക്കി ഒരു ഡാറ്റ ഫ്രെയിമിൽ ഡാറ്റ ഫിൽട്ടർ ചെയ്യുന്നു
പാണ്ടസ് ലൈബ്രറിയോടുകൂടിയ പൈത്തൺ
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
പാണ്ടസിലെ ഡാറ്റാഫ്രെയിം വരികൾ തിരഞ്ഞെടുക്കുന്നതിനുള്ള നൂതന സാങ്കേതിക വിദ്യകൾ
ബൂളിയൻ ഇൻഡക്സിംഗ് ഉപയോഗിച്ച് അടിസ്ഥാന ഫിൽട്ടറിംഗ് കൂടാതെ, കോളം മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി വരികൾ തിരഞ്ഞെടുക്കുന്നതിനുള്ള വിപുലമായ സാങ്കേതിക വിദ്യകൾ പാണ്ഡാസ് വാഗ്ദാനം ചെയ്യുന്നു. ഒരു ശക്തമായ രീതി ഉപയോഗിക്കുന്നു query() ഫംഗ്ഷൻ, ഇത് ഒരു ക്വറി എക്സ്പ്രഷൻ ഉപയോഗിച്ച് വരികൾ ഫിൽട്ടർ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഇത് വാക്യഘടനയെ കൂടുതൽ വൃത്തിയുള്ളതും കൂടുതൽ അവബോധജന്യവുമാക്കുന്നു. ഉദാഹരണത്തിന്, ഉപയോഗിക്കുന്നതിന് പകരം df[df['Age'] > 25], നിങ്ങൾക്ക് എഴുതാം df.query('Age > 25'). കൂടുതൽ സങ്കീർണ്ണമായ അവസ്ഥകൾ കൈകാര്യം ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ കോളം പേരുകളിൽ സ്പെയ്സുകൾ അടങ്ങിയിരിക്കുമ്പോൾ ഈ രീതി പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. കൂടാതെ, ദി isin() മൂല്യങ്ങളുടെ പട്ടികയെ അടിസ്ഥാനമാക്കി വരികൾ ഫിൽട്ടർ ചെയ്യണമെങ്കിൽ ഫംഗ്ഷൻ പ്രയോജനകരമാണ്. ഉദാഹരണത്തിന്, 'സിറ്റി' കോളം മൂല്യം 'ഷിക്കാഗോ' അല്ലെങ്കിൽ 'ന്യൂയോർക്ക്' ആയിരിക്കുന്ന വരികൾ തിരഞ്ഞെടുക്കാൻ, നിങ്ങൾക്ക് ഉപയോഗിക്കാം df[df['City'].isin(['Chicago', 'New York'])].
മറ്റൊരു സാങ്കേതികത ഉൾപ്പെടുന്നു loc ഒപ്പം iloc സൂചികകൾ. ദി loc ഇൻഡെക്സർ ലേബൽ അധിഷ്ഠിതമാണ്, വരി ലേബലുകളുടെയും കോളം പേരുകളുടെയും അടിസ്ഥാനത്തിൽ വരികൾ തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അതേസമയം iloc പൂർണ്ണസംഖ്യ-ലൊക്കേഷൻ അടിസ്ഥാനമാക്കിയുള്ളതാണ്, വരി, കോളം നമ്പറുകൾ പ്രകാരം തിരഞ്ഞെടുക്കൽ പ്രവർത്തനക്ഷമമാക്കുന്നു. മറ്റൊരു നിരയിൽ പ്രയോഗിച്ച ഒരു വ്യവസ്ഥയെ അടിസ്ഥാനമാക്കി വരികൾ തിരഞ്ഞെടുക്കുന്നതിന് ഈ വഴക്കം പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. ഉദാഹരണത്തിന്, df.loc[df['Age'] > 25, 'Name'] 25 വയസ്സിന് മുകളിലുള്ള വ്യക്തികളുടെ പേരുകൾ തിരികെ നൽകും. ഈ രീതികൾ പാണ്ടസിലെ ഡാറ്റ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യുന്നതിനും വിശകലനം ചെയ്യുന്നതിനും കൂടുതൽ വായിക്കാവുന്നതും പരിപാലിക്കാവുന്നതുമായ കോഡ് വാഗ്ദാനം ചെയ്യുന്നതിനായി നിങ്ങളുടെ ടൂൾകിറ്റ് വികസിപ്പിക്കുന്നു.
ഡാറ്റാഫ്രെയിം വരികൾ തിരഞ്ഞെടുക്കുന്നതിനെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങളും ഉത്തരങ്ങളും
- ഒന്നിലധികം വ്യവസ്ഥകളെ അടിസ്ഥാനമാക്കി എനിക്ക് എങ്ങനെ വരികൾ തിരഞ്ഞെടുക്കാനാകും?
- നിങ്ങൾക്ക് ഉപയോഗിക്കാം query() പോലുള്ള ലോജിക്കൽ ഓപ്പറേറ്റർമാരുമായി വ്യവസ്ഥകൾ പ്രവർത്തിക്കുക അല്ലെങ്കിൽ സംയോജിപ്പിക്കുക & ഒപ്പം |. ഉദാഹരണത്തിന്, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- മൂല്യങ്ങളുടെ ലിസ്റ്റ് അടിസ്ഥാനമാക്കി എനിക്ക് വരികൾ ഫിൽട്ടർ ചെയ്യാൻ കഴിയുമോ?
- അതെ, ഉപയോഗിക്കുക isin() പ്രവർത്തനം. ഉദാഹരണത്തിന്, df[df['City'].isin(['Chicago', 'New York'])].
- എന്താണ് തമ്മിലുള്ള വ്യത്യാസം loc ഒപ്പം iloc?
- loc ലേബൽ അടിസ്ഥാനമാക്കിയുള്ളതാണ്, അതേസമയം iloc പൂർണ്ണസംഖ്യ-സ്ഥാനം അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ഉപയോഗിക്കുക loc വരി/നിര ലേബലുകൾ കൂടാതെ iloc വരി/നിര സൂചികകൾക്കൊപ്പം.
- വരികൾ ഫിൽട്ടർ ചെയ്യുമ്പോൾ പ്രത്യേക നിരകൾ എങ്ങനെ തിരഞ്ഞെടുക്കാം?
- നിങ്ങൾക്ക് ഉപയോഗിക്കാം loc. ഉദാഹരണത്തിന്, df.loc[df['Age'] > 25, ['Name', 'City']].
- വരികൾ തിരഞ്ഞെടുക്കുമ്പോൾ നഷ്ടപ്പെട്ട മൂല്യങ്ങൾ എങ്ങനെ കൈകാര്യം ചെയ്യാം?
- ഉപയോഗിക്കുക dropna() നഷ്ടപ്പെട്ട മൂല്യങ്ങളുള്ള വരികൾ നീക്കം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനം, അല്ലെങ്കിൽ fillna() ഒരു നിർദ്ദിഷ്ട മൂല്യം ഉപയോഗിച്ച് അവയെ മാറ്റിസ്ഥാപിക്കാൻ.
- വരികൾ ഫിൽട്ടർ ചെയ്യാൻ എനിക്ക് സാധാരണ എക്സ്പ്രഷനുകൾ ഉപയോഗിക്കാമോ?
- അതെ, ദി str.contains() കൂടെ പ്രവർത്തനം regex=True regex പാറ്റേണുകളെ അടിസ്ഥാനമാക്കി വരികൾ ഫിൽട്ടർ ചെയ്യാൻ പരാമീറ്റർ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, df[df['Name'].str.contains('^A', regex=True)].
- സൂചികയെ അടിസ്ഥാനമാക്കി വരികൾ എങ്ങനെ ഫിൽട്ടർ ചെയ്യാം?
- നിങ്ങൾക്ക് ഉപയോഗിക്കാം loc സൂചിക നാമത്തോടൊപ്പം. ഉദാഹരണത്തിന്, df.loc[df.index == 'some_index'].
- എൻ്റെ കോളത്തിൻ്റെ പേരുകളിൽ സ്പെയ്സുകളോ പ്രത്യേക പ്രതീകങ്ങളോ അടങ്ങിയാലോ?
- ഉപയോഗിക്കുക query() ബാക്ക്ടിക്കുകൾ ഉപയോഗിച്ച് അത്തരം കോളം പേരുകൾ കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന ഫംഗ്ഷൻ. ഉദാഹരണത്തിന്, df.query('`column name` == value').
ഡാറ്റാഫ്രെയിം റോ സെലക്ഷൻ ടെക്നിക്കുകളെക്കുറിച്ചുള്ള അന്തിമ ചിന്തകൾ
Pandas-ലെ കോളം മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി ഒരു DataFrame-ൽ നിന്ന് വരികൾ തിരഞ്ഞെടുക്കുന്നത് ഡാറ്റ കൃത്രിമത്വത്തിനുള്ള ഒരു നിർണായക വൈദഗ്ധ്യമാണ്. ബൂളിയൻ ഇൻഡക്സിംഗ് ഉൾപ്പെടെ ചർച്ച ചെയ്ത വിവിധ രീതികൾ, query(), isin(), കൂടാതെ ലേബൽ അധിഷ്ഠിതവും പൂർണ്ണസംഖ്യ-ലൊക്കേഷൻ അടിസ്ഥാനമാക്കിയുള്ള ഇൻഡെക്സിംഗ് loc ഒപ്പം iloc, ഡാറ്റ കാര്യക്ഷമമായി ഫിൽട്ടർ ചെയ്യുന്നതിന് ശക്തമായ ടൂളുകൾ നൽകുക. ഈ സാങ്കേതിക വിദ്യകളുടെ വൈദഗ്ധ്യം മികച്ച ഡാറ്റാ വിശകലനവും ശുദ്ധവും കൂടുതൽ പരിപാലിക്കാവുന്നതുമായ കോഡ് പ്രാപ്തമാക്കുന്നു.