పైథాన్ పాండాస్లో డేటాఫ్రేమ్లను విలీనం చేయడం, చేర్చడంపై సమగ్ర గైడ్, ప్రపంచ డేటా విశ్లేషణ కోసం ఇన్నర్, ఔటర్, లెఫ్ట్, రైట్ జాయిన్ల వంటి వివిధ వ్యూహాలను ఉదాహరణలతో వివరించింది.
పైథాన్ పాండాస్ విలీనం: డేటా విశ్లేషణ కోసం డేటాఫ్రేమ్ జాయినింగ్ వ్యూహాలను ప్రావీణ్యం చేసుకోవడం
డేటా మానిప్యులేషన్ అనేది డేటా విశ్లేషణలో కీలకమైన అంశం, మరియు పైథాన్లోని పాండాస్ లైబ్రరీ ఈ ప్రయోజనం కోసం శక్తివంతమైన సాధనాలను అందిస్తుంది. ఈ సాధనాలలో, సాధారణ నిలువు వరుసలు లేదా సూచికల ఆధారంగా డేటాసెట్లను కలపడానికి డేటాఫ్రేమ్లను విలీనం చేయడం మరియు చేర్చడం అవసరమైన కార్యకలాపాలు. ఈ సమగ్ర గైడ్ పాండాస్లో వివిధ డేటాఫ్రేమ్ జాయినింగ్ వ్యూహాలను అన్వేషిస్తుంది, వివిధ వనరుల నుండి డేటాను సమర్థవంతంగా కలపడానికి మరియు విశ్లేషించడానికి మీకు జ్ఞానాన్ని అందిస్తుంది.
డేటాఫ్రేమ్ విలీనం మరియు చేరడం అర్థం చేసుకోవడం
డేటాఫ్రేమ్లను విలీనం చేయడం మరియు చేర్చడం అనేది భాగస్వామ్య కాలమ్ లేదా సూచిక ఆధారంగా రెండు లేదా అంతకంటే ఎక్కువ డేటాఫ్రేమ్లను ఒకే డేటాఫ్రేమ్లోకి కలపడం. merge మరియు join మధ్య ప్రధాన వ్యత్యాసం ఏమిటంటే, merge అనేది పాండాస్ లైబ్రరీ యొక్క ఫంక్షన్ మరియు సాధారణంగా కాలమ్లపై డేటాఫ్రేమ్లను కలుపుతుంది, అయితే join అనేది డేటాఫ్రేమ్ పద్ధతి, ఇది ప్రధానంగా సూచికలపై డేటాఫ్రేమ్లను కలుపుతుంది, అయినప్పటికీ దీనిని కాలమ్లతో కూడా ఉపయోగించవచ్చు.
కీలక భావనలు
- డేటాఫ్రేమ్లు: బహుశా వేర్వేరు రకాల నిలువు వరుసలతో కూడిన ద్వి-డైమెన్షనల్ లేబుల్ చేయబడిన డేటా నిర్మాణాలు.
- సాధారణ నిలువు వరుసలు/సూచికలు: డేటాఫ్రేమ్లలో ఒకే పేరు మరియు డేటా రకాన్ని పంచుకునే నిలువు వరుసలు లేదా సూచికలు, విలీనం/చేరడానికి ఆధారంగా పనిచేస్తాయి.
- జాయిన్ రకాలు: ఇన్నర్, ఔటర్, లెఫ్ట్ మరియు రైట్ జాయిన్లతో సహా విలీనం/చేరడం ప్రక్రియలో సరిపోలని అడ్డు వరుసలను నిర్వహించడానికి వివిధ వ్యూహాలు.
pd.merge()తో డేటాఫ్రేమ్ విలీనం
pd.merge() ఫంక్షన్ అనేది నిలువు వరుసల ఆధారంగా డేటాఫ్రేమ్లను విలీనం చేయడానికి ప్రాథమిక సాధనం. ఇది ఒకటి లేదా అంతకంటే ఎక్కువ సాధారణ నిలువు వరుసల ఆధారంగా డేటాను కలపడానికి సౌకర్యవంతమైన మార్గాన్ని అందిస్తుంది.
సింటాక్స్
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
పారామీటర్లు
- left: విలీనం చేయాల్సిన ఎడమ డేటాఫ్రేమ్.
- right: విలీనం చేయాల్సిన కుడి డేటాఫ్రేమ్.
- how: చేయవలసిన విలీన రకం ('inner', 'outer', 'left', 'right'). డిఫాల్ట్ 'inner'.
- on: చేరడానికి నిలువు వరుస(ల) పేరు. ఇవి రెండు డేటాఫ్రేమ్లలోనూ ఉండాలి.
- left_on: జాయిన్ కీ(ల)గా ఉపయోగించాల్సిన ఎడమ డేటాఫ్రేమ్లోని నిలువు వరుస(ల) పేరు.
- right_on: జాయిన్ కీ(ల)గా ఉపయోగించాల్సిన కుడి డేటాఫ్రేమ్లోని నిలువు వరుస(ల) పేరు.
- left_index: True అయితే, ఎడమ డేటాఫ్రేమ్ నుండి సూచికను జాయిన్ కీ(ల)గా ఉపయోగించండి.
- right_index: True అయితే, కుడి డేటాఫ్రేమ్ నుండి సూచికను జాయిన్ కీ(ల)గా ఉపయోగించండి.
- sort: జాయిన్ కీల ద్వారా ఫలిత డేటాఫ్రేమ్ను వర్ణమాల క్రమంలో క్రమబద్ధీకరించండి. డిఫాల్ట్ False.
- suffixes: అతివ్యాప్తి చెందుతున్న నిలువు వరుస పేర్లకు వర్తించాల్సిన స్ట్రింగ్ సఫిక్స్ల టపుల్. డిఫాల్ట్ ('_x', '_y').
- copy: False అయితే, వీలైన చోట కొత్త డేటాఫ్రేమ్లోకి డేటాను కాపీ చేయకుండా ఉండండి. డిఫాల్ట్ True.
- indicator: True అయితే, ప్రతి అడ్డు వరుస యొక్క మూలాన్ని సూచించే '_merge' అనే నిలువు వరుసను జోడిస్తుంది.
- validate: విలీనం పేర్కొన్న రకానికి చెందినదా అని తనిఖీ చేస్తుంది. "one_to_one", "one_to_many", "many_to_one", "many_to_many".
జాయిన్ రకాలు వివరణ
pd.merge()లోని how పారామీటర్ చేయబడిన జాయిన్ రకాన్ని నిర్ణయిస్తుంది. విభిన్న జాయిన్ రకాలు సరిపోలని అడ్డు వరుసలను విభిన్న మార్గాల్లో నిర్వహిస్తాయి.
ఇన్నర్ జాయిన్
ఒక ఇన్నర్ జాయిన్ జాయిన్ కీల ఆధారంగా రెండు డేటాఫ్రేమ్లలో సరిపోలిన విలువలు ఉన్న అడ్డు వరుసలను మాత్రమే అందిస్తుంది. సరిపోలని విలువలు ఉన్న అడ్డు వరుసలు ఫలితం నుండి మినహాయించబడతాయి.
ఉదాహరణ:
రెండు డేటాఫ్రేమ్లను పరిగణించండి:
import pandas as pd
# DataFrame 1: Customer Orders
df_orders = pd.DataFrame({
'order_id': [1, 2, 3, 4, 5],
'customer_id': [101, 102, 103, 104, 105],
'product_id': [1, 2, 1, 3, 2],
'quantity': [2, 1, 3, 1, 2]
})
# DataFrame 2: Customer Information
df_customers = pd.DataFrame({
'customer_id': [101, 102, 103, 106],
'customer_name': ['Alice', 'Bob', 'Charlie', 'David'],
'country': ['USA', 'Canada', 'UK', 'Australia']
})
# Inner Join
df_inner = pd.merge(df_orders, df_customers, on='customer_id', how='inner')
print(df_inner)
అవుట్పుట్:
order_id customer_id product_id quantity customer_name country
0 1 101 1 2 Alice USA
1 2 102 2 1 Bob Canada
2 3 103 1 3 Charlie UK
ఈ ఉదాహరణలో, ఇన్నర్ జాయిన్ df_orders మరియు df_customers డేటాఫ్రేమ్లను customer_id కాలమ్ ఆధారంగా కలుపుతుంది. ఆర్డర్లు చేసిన కస్టమర్లు మాత్రమే ఫలితంలో చేర్చబడతారు. కస్టమర్ 'డేవిడ్' (కస్టమర్_ఐడి 106) మినహాయించబడ్డాడు ఎందుకంటే అతనికి ఎటువంటి ఆర్డర్లు లేవు.
ఔటర్ జాయిన్ (ఫుల్ ఔటర్ జాయిన్)
ఒక ఔటర్ జాయిన్ సరిపోలని అడ్డు వరుసలతో సహా రెండు డేటాఫ్రేమ్ల నుండి అన్ని అడ్డు వరుసలను అందిస్తుంది. ఒక అడ్డు వరుస ఇతర డేటాఫ్రేమ్లో సరిపోలికను కలిగి లేకపోతే, సంబంధిత నిలువు వరుసలు NaN (నెంబర్ కాదు) విలువలను కలిగి ఉంటాయి.
ఉదాహరణ:
# Outer Join
df_outer = pd.merge(df_orders, df_customers, on='customer_id', how='outer')
print(df_outer)
అవుట్పుట్:
order_id customer_id product_id quantity customer_name country
0 1.0 101 1.0 2.0 Alice USA
1 2.0 102 2.0 1.0 Bob Canada
2 3.0 103 1.0 3.0 Charlie UK
3 4.0 104 3.0 1.0 NaN NaN
4 5.0 105 2.0 2.0 NaN NaN
5 NaN 106 NaN NaN David Australia
ఔటర్ జాయిన్ అన్ని కస్టమర్లను మరియు అన్ని ఆర్డర్లను కలుపుతుంది. కస్టమర్లు 104 మరియు 105 ఆర్డర్లను కలిగి ఉన్నారు, కానీ కస్టమర్ సమాచారం లేదు, మరియు కస్టమర్ 106 కస్టమర్ సమాచారాన్ని కలిగి ఉన్నాడు, కానీ ఆర్డర్లు లేవు. తప్పిపోయిన విలువలు NaNగా సూచించబడతాయి.
లెఫ్ట్ జాయిన్
ఒక లెఫ్ట్ జాయిన్ ఎడమ డేటాఫ్రేమ్ నుండి అన్ని అడ్డు వరుసలను మరియు కుడి డేటాఫ్రేమ్ నుండి సరిపోలిన అడ్డు వరుసలను అందిస్తుంది. ఎడమ డేటాఫ్రేమ్లోని ఒక అడ్డు వరుస కుడి డేటాఫ్రేమ్లో సరిపోలికను కలిగి లేకపోతే, కుడి డేటాఫ్రేమ్ నుండి సంబంధిత నిలువు వరుసలు NaN విలువలను కలిగి ఉంటాయి.
ఉదాహరణ:
# Left Join
df_left = pd.merge(df_orders, df_customers, on='customer_id', how='left')
print(df_left)
అవుట్పుట్:
order_id customer_id product_id quantity customer_name country
0 1 101 1 2 Alice USA
1 2 102 2 1 Bob Canada
2 3 103 1 3 Charlie UK
3 4 104 3 1 NaN NaN
4 5 105 2 2 NaN NaN
లెఫ్ట్ జాయిన్ df_orders నుండి అన్ని ఆర్డర్లను కలుపుతుంది. కస్టమర్లు 104 మరియు 105 ఆర్డర్లను కలిగి ఉన్నారు, కానీ కస్టమర్ సమాచారం లేదు, కాబట్టి ఆ ఆర్డర్లకు customer_name మరియు country నిలువు వరుసలు NaN.
రైట్ జాయిన్
ఒక రైట్ జాయిన్ కుడి డేటాఫ్రేమ్ నుండి అన్ని అడ్డు వరుసలను మరియు ఎడమ డేటాఫ్రేమ్ నుండి సరిపోలిన అడ్డు వరుసలను అందిస్తుంది. కుడి డేటాఫ్రేమ్లోని ఒక అడ్డు వరుస ఎడమ డేటాఫ్రేమ్లో సరిపోలికను కలిగి లేకపోతే, ఎడమ డేటాఫ్రేమ్ నుండి సంబంధిత నిలువు వరుసలు NaN విలువలను కలిగి ఉంటాయి.
ఉదాహరణ:
# Right Join
df_right = pd.merge(df_orders, df_customers, on='customer_id', how='right')
print(df_right)
అవుట్పుట్:
order_id customer_id product_id quantity customer_name country
0 1.0 101 1.0 2.0 Alice USA
1 2.0 102 2.0 1.0 Bob Canada
2 3.0 103 1.0 3.0 Charlie UK
3 NaN 106 NaN NaN David Australia
రైట్ జాయిన్ df_customers నుండి అన్ని కస్టమర్లను కలుపుతుంది. కస్టమర్ 106 కస్టమర్ సమాచారాన్ని కలిగి ఉన్నాడు, కానీ ఆర్డర్లు లేవు, కాబట్టి ఆ కస్టమర్కు order_id, product_id మరియు quantity నిలువు వరుసలు NaN.
df.join()తో డేటాఫ్రేమ్ జాయినింగ్
df.join() పద్ధతి ప్రధానంగా డేటాఫ్రేమ్లను వాటి సూచికల ఆధారంగా చేర్చడానికి ఉపయోగించబడుతుంది. దీనిని నిలువు వరుసలపై చేర్చడానికి కూడా ఉపయోగించవచ్చు, కానీ నిలువు వరుసల ఆధారిత జాయిన్ల కోసం pd.merge()ని ఉపయోగించడం సాధారణంగా మరింత సౌకర్యవంతంగా ఉంటుంది.
సింటాక్స్
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
పారామీటర్లు
- other: చేర్చవలసిన ఇతర డేటాఫ్రేమ్.
- on: చేరడానికి నిలువు వరుస పేరు. సూచిక జాయిన్ కీగా ఉపయోగించబడకపోతే తప్పనిసరిగా పంపాలి.
- how: ఎడమ మరియు కుడి సెట్ల ఆపరేషన్ను ఎలా నిర్వహించాలి. డిఫాల్ట్ 'left'.
- lsuffix: అతివ్యాప్తి చెందుతున్న నిలువు వరుసల పేర్లను భర్తీ చేయడానికి ఎడమ డేటాఫ్రేమ్ నుండి ఉపయోగించాల్సిన సఫిక్స్.
- rsuffix: అతివ్యాప్తి చెందుతున్న నిలువు వరుసల పేర్లను భర్తీ చేయడానికి కుడి డేటాఫ్రేమ్ నుండి ఉపయోగించాల్సిన సఫిక్స్.
- sort: జాయిన్ కీల ద్వారా ఫలిత డేటాఫ్రేమ్ను వర్ణమాల క్రమంలో క్రమబద్ధీకరించండి. డిఫాల్ట్ False.
సూచికపై చేరడం
సూచికపై చేరినప్పుడు, on పారామీటర్ ఉపయోగించబడదు.
ఉదాహరణ:
# DataFrame 1: Customer Orders with Customer ID as Index
df_orders_index = df_orders.set_index('customer_id')
# DataFrame 2: Customer Information with Customer ID as Index
df_customers_index = df_customers.set_index('customer_id')
# Join on Index (Left Join)
df_join_index = df_orders_index.join(df_customers_index, how='left')
print(df_join_index)
అవుట్పుట్:
order_id product_id quantity customer_name country
customer_id
101 1 1 2 Alice USA
102 2 2 1 Bob Canada
103 3 1 3 Charlie UK
104 4 3 1 NaN NaN
105 5 2 2 NaN NaN
ఈ ఉదాహరణలో, సూచిక (customer_id)పై లెఫ్ట్ జాయిన్ను నిర్వహించడానికి join() పద్ధతి ఉపయోగించబడుతుంది. ఫలితం pd.merge()ని ఉపయోగించి లెఫ్ట్ జాయిన్కు సమానంగా ఉంటుంది, కానీ జాయిన్ కాలమ్ ఆధారంగా కాకుండా సూచిక ఆధారంగా ఉంటుంది.
కాలమ్పై చేరడం
df.join()ని ఉపయోగించి కాలమ్పై చేరడానికి, మీరు on పారామీటర్ను పేర్కొనాలి.
ఉదాహరణ:
# Joining on a column
df_join_column = df_orders.join(df_customers.set_index('customer_id'), on='customer_id', how='left')
print(df_join_column)
అవుట్పుట్:
order_id customer_id product_id quantity customer_name country
0 1 101 1 2 Alice USA
1 2 102 2 1 Bob Canada
2 3 103 1 3 Charlie UK
3 4 104 3 1 NaN NaN
4 5 105 2 2 NaN NaN
ఈ ఉదాహరణ customer_id కాలమ్ను ఉపయోగించి df_ordersను df_customersతో చేర్చడాన్ని ప్రదర్శిస్తుంది. జాయిన్ను నిర్వహించడానికి ముందు customer_id df_customersలో సూచికగా సెట్ చేయబడిందని గమనించండి.
అతివ్యాప్తి చెందుతున్న నిలువు వరుసలను నిర్వహించడం
డేటాఫ్రేమ్లను విలీనం చేసేటప్పుడు లేదా చేర్చేటప్పుడు, అతివ్యాప్తి చెందుతున్న నిలువు వరుసల పేర్లు (రెండు డేటాఫ్రేమ్లలో ఒకే పేరుతో ఉన్న నిలువు వరుసలు) ఎదురవడం సాధారణం. ఈ పరిస్థితులను నిర్వహించడానికి పాండాస్ pd.merge()లో suffixes పారామీటర్ను మరియు df.join()లో lsuffix మరియు rsuffix పారామీటర్లను అందిస్తుంది.
pd.merge()లో suffixes ఉపయోగించడం
అతివ్యాప్తి చెందుతున్న నిలువు వరుసల పేర్లకు వాటిని వేరు చేయడానికి జోడించబడే సఫిక్స్లను పేర్కొనడానికి suffixes పారామీటర్ మిమ్మల్ని అనుమతిస్తుంది.
ఉదాహరణ:
# DataFrame 1: Product Information
df_products1 = pd.DataFrame({
'product_id': [1, 2, 3],
'product_name': ['Product A', 'Product B', 'Product C'],
'price': [10, 20, 15]
})
# DataFrame 2: Product Information (with potentially updated prices)
df_products2 = pd.DataFrame({
'product_id': [1, 2, 4],
'product_name': ['Product A', 'Product B', 'Product D'],
'price': [12, 18, 25]
})
# Merge with suffixes
df_merged_suffixes = pd.merge(df_products1, df_products2, on='product_id', suffixes=('_old', '_new'))
print(df_merged_suffixes)
అవుట్పుట్:
product_id product_name_old price_old product_name_new price_new
0 1 Product A 10 Product A 12
1 2 Product B 20 Product B 18
ఈ ఉదాహరణలో, product_name మరియు price నిలువు వరుసలు రెండు డేటాఫ్రేమ్లలోనూ ఉన్నాయి. suffixes పారామీటర్ ఎడమ మరియు కుడి డేటాఫ్రేమ్ల నుండి నిలువు వరుసలను వేరు చేయడానికి _old మరియు _new సఫిక్స్లను జోడిస్తుంది.
df.join()లో lsuffix మరియు rsuffix ఉపయోగించడం
lsuffix మరియు rsuffix పారామీటర్లు df.join() కోసం సారూప్య కార్యాచరణను అందిస్తాయి. lsuffix ఎడమ డేటాఫ్రేమ్ యొక్క అతివ్యాప్తి చెందుతున్న నిలువు వరుసలకు జోడిస్తుంది, మరియు rsuffix కుడి డేటాఫ్రేమ్ యొక్క వాటికి.
ఉదాహరణ:
# Join with lsuffix and rsuffix
df_products1_index = df_products1.set_index('product_id')
df_products2_index = df_products2.set_index('product_id')
df_joined_suffixes = df_products1_index.join(df_products2_index, lsuffix='_old', rsuffix='_new', how='outer')
print(df_joined_suffixes)
అవుట్పుట్:
product_name_old price_old product_name_new price_new
product_id
1 Product A 10.0 Product A 12.0
2 Product B 20.0 Product B 18.0
3 Product C 15.0 NaN NaN
4 NaN NaN Product D 25.0
ఆచరణాత్మక ఉదాహరణలు మరియు వినియోగ సందర్భాలు
డేటాఫ్రేమ్లను విలీనం చేయడం మరియు చేర్చడం వివిధ డేటా విశ్లేషణ సందర్భాలలో విస్తృతంగా ఉపయోగించబడుతుంది. ఇక్కడ కొన్ని ఆచరణాత్మక ఉదాహరణలు ఉన్నాయి:
అమ్మకాల డేటాను ఉత్పత్తి సమాచారంతో కలపడం
అమ్మకాల డేటాను ఉత్పత్తి సమాచారంతో కలపడం ఒక సాధారణ వినియోగ సందర్భం. మీరు అమ్మకాల లావాదేవీలను కలిగి ఉన్న డేటాఫ్రేమ్ను మరియు ఉత్పత్తి వివరాలను కలిగి ఉన్న మరొక డేటాఫ్రేమ్ను కలిగి ఉన్నారని అనుకుందాం. ఉత్పత్తి సమాచారంతో అమ్మకాల డేటాను సుసంపన్నం చేయడానికి మీరు ఈ డేటాఫ్రేమ్లను విలీనం చేయవచ్చు.
ఉదాహరణ:
# Sales Transactions Data
df_sales = pd.DataFrame({
'transaction_id': [1, 2, 3, 4, 5],
'product_id': [101, 102, 103, 101, 104],
'quantity': [2, 1, 3, 1, 2],
'sales_date': ['2023-01-15', '2023-02-20', '2023-03-10', '2023-04-05', '2023-05-01']
})
# Product Information Data
df_products = pd.DataFrame({
'product_id': [101, 102, 103, 104],
'product_name': ['Laptop', 'Mouse', 'Keyboard', 'Monitor'],
'category': ['Electronics', 'Electronics', 'Electronics', 'Electronics'],
'price': [1200, 25, 75, 300]
})
# Merge Sales Data with Product Information
df_sales_enriched = pd.merge(df_sales, df_products, on='product_id', how='left')
print(df_sales_enriched)
అవుట్పుట్:
transaction_id product_id quantity sales_date product_name category price
0 1 101 2 2023-01-15 Laptop Electronics 1200
1 2 102 1 2023-02-20 Mouse Electronics 25
2 3 103 3 2023-03-10 Keyboard Electronics 75
3 4 101 1 2023-04-05 Laptop Electronics 1200
4 5 104 2 2023-05-01 Monitor Electronics 300
ఫలిత డేటాఫ్రేమ్ df_sales_enriched అమ్మకాల లావాదేవీలను సంబంధిత ఉత్పత్తి సమాచారంతో కలిగి ఉంటుంది, అమ్మకాల ధోరణులు మరియు ఉత్పత్తి పనితీరు యొక్క మరింత వివరణాత్మక విశ్లేషణను అనుమతిస్తుంది.
కస్టమర్ డేటాను డెమోగ్రాఫిక్ సమాచారంతో కలపడం
మరొక సాధారణ వినియోగ సందర్భం కస్టమర్ డేటాను డెమోగ్రాఫిక్ సమాచారంతో కలపడం. ఇది డెమోగ్రాఫిక్ కారకాల ఆధారంగా కస్టమర్ ప్రవర్తనను విశ్లేషించడానికి అనుమతిస్తుంది.
ఉదాహరణ:
# Customer Data
df_customers = pd.DataFrame({
'customer_id': [1, 2, 3, 4, 5],
'customer_name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'city': ['New York', 'London', 'Tokyo', 'Sydney', 'Berlin']
})
# Demographic Information Data
df_demographics = pd.DataFrame({
'city': ['New York', 'London', 'Tokyo', 'Sydney', 'Berlin'],
'population': [8419000, 8982000, 13960000, 5312000, 3769000],
'average_income': [75000, 65000, 85000, 90000, 55000]
})
# Merge Customer Data with Demographic Information
df_customer_demographics = pd.merge(df_customers, df_demographics, on='city', how='left')
print(df_customer_demographics)
అవుట్పుట్:
customer_id customer_name city population average_income
0 1 Alice New York 8419000 75000
1 2 Bob London 8982000 65000
2 3 Charlie Tokyo 13960000 85000
3 4 David Sydney 5312000 90000
4 5 Eve Berlin 3769000 55000
ఫలిత డేటాఫ్రేమ్ df_customer_demographics కస్టమర్ డేటాను వారి సంబంధిత నగరాల కోసం డెమోగ్రాఫిక్ సమాచారంతో కలిగి ఉంటుంది, నగర డెమోగ్రాఫిక్స్ ఆధారంగా కస్టమర్ ప్రవర్తనను విశ్లేషించడానికి వీలు కల్పిస్తుంది.
ప్రపంచ సరఫరా గొలుసు డేటాను విశ్లేషించడం
పాండాస్ విలీనం ప్రపంచ సరఫరా గొలుసు డేటాను విశ్లేషించడానికి విలువైనది, ఇక్కడ సమాచారం తరచుగా బహుళ పట్టికలలో వ్యాపించి ఉంటుంది. ఉదాహరణకు, సరఫరాదారు డేటా, షిప్పింగ్ సమాచారం మరియు అమ్మకాల సంఖ్యలను లింక్ చేయడం అడ్డంకులను బహిర్గతం చేస్తుంది మరియు లాజిస్టిక్స్ను ఆప్టిమైజ్ చేస్తుంది.
ఉదాహరణ:
# Supplier Data
df_suppliers = pd.DataFrame({
'supplier_id': [1, 2, 3],
'supplier_name': ['GlobalTech', 'EuroParts', 'AsiaSource'],
'location': ['Taiwan', 'Germany', 'China']
})
# Shipping Data
df_shipments = pd.DataFrame({
'shipment_id': [101, 102, 103, 104],
'supplier_id': [1, 2, 3, 1],
'destination': ['USA', 'Canada', 'Australia', 'Japan'],
'shipment_date': ['2023-01-10', '2023-02-15', '2023-03-20', '2023-04-25']
})
# Merge Supplier and Shipment Data
df_supply_chain = pd.merge(df_shipments, df_suppliers, on='supplier_id', how='left')
print(df_supply_chain)
అవుట్పుట్:
shipment_id supplier_id destination shipment_date supplier_name location
0 101 1 USA 2023-01-10 GlobalTech Taiwan
1 102 2 Canada 2023-02-15 EuroParts Germany
2 103 3 Australia 2023-03-20 AsiaSource China
3 104 1 Japan 2023-04-25 GlobalTech Taiwan
అధునాతన విలీన పద్ధతులు
బహుళ నిలువు వరుసలపై విలీనం చేయడం
మీరు on పారామీటర్కు నిలువు వరుసల పేర్ల జాబితాను పంపడం ద్వారా బహుళ నిలువు వరుసల ఆధారంగా డేటాఫ్రేమ్లను విలీనం చేయవచ్చు.
ఉదాహరణ:
# DataFrame 1
df1 = pd.DataFrame({
'product_id': [1, 1, 2, 2],
'color': ['red', 'blue', 'red', 'blue'],
'quantity': [10, 15, 20, 25]
})
# DataFrame 2
df2 = pd.DataFrame({
'product_id': [1, 1, 2, 2],
'color': ['red', 'blue', 'red', 'blue'],
'price': [5, 7, 8, 10]
})
# Merge on multiple columns
df_merged_multiple = pd.merge(df1, df2, on=['product_id', 'color'], how='inner')
print(df_merged_multiple)
అవుట్పుట్:
product_id color quantity price
0 1 red 10 5
1 1 blue 15 7
2 2 red 20 8
3 2 blue 25 10
విభిన్న నిలువు వరుస పేర్లతో విలీనం చేయడం
జాయిన్ నిలువు వరుసలు రెండు డేటాఫ్రేమ్లలో విభిన్న పేర్లను కలిగి ఉంటే, విలీనం చేయడానికి ఉపయోగించాల్సిన నిలువు వరుసల పేర్లను పేర్కొనడానికి మీరు left_on మరియు right_on పారామీటర్లను ఉపయోగించవచ్చు.
ఉదాహరణ:
# DataFrame 1
df1 = pd.DataFrame({
'product_id': [1, 2, 3],
'product_name': ['Product A', 'Product B', 'Product C']
})
# DataFrame 2
df2 = pd.DataFrame({
'id': [1, 2, 4],
'price': [10, 20, 25]
})
# Merge with different column names
df_merged_different = pd.merge(df1, df2, left_on='product_id', right_on='id', how='left')
print(df_merged_different)
అవుట్పుట్:
product_id product_name id price
0 1 Product A 1.0 10.0
1 2 Product B 2.0 20.0
2 3 Product C NaN NaN
విలీన విశ్లేషణ కోసం indicator ఉపయోగించడం
pd.merge()లోని indicator పారామీటర్ ఫలిత డేటాఫ్రేమ్కు _merge అనే కాలమ్ను జోడిస్తుంది, ప్రతి అడ్డు వరుస యొక్క మూలాన్ని సూచిస్తుంది. ఏ అడ్డు వరుసలు సరిపోలాయి మరియు ఏవి సరిపోలలేదు అని అర్థం చేసుకోవడానికి ఇది ఉపయోగపడుతుంది.
ఉదాహరణ:
# Merge with indicator
df_merged_indicator = pd.merge(df_orders, df_customers, on='customer_id', how='outer', indicator=True)
print(df_merged_indicator)
అవుట్పుట్:
order_id customer_id product_id quantity customer_name country _merge
0 1.0 101 1.0 2.0 Alice USA both
1 2.0 102 2.0 1.0 Bob Canada both
2 3.0 103 1.0 3.0 Charlie UK both
3 4.0 104 3.0 1.0 NaN NaN left_only
4 5.0 105 2.0 2.0 NaN NaN left_only
5 NaN 106 NaN NaN David Australia right_only
_merge కాలమ్ అడ్డు వరుస రెండు డేటాఫ్రేమ్ల నుండి (both), ఎడమ డేటాఫ్రేమ్ నుండి మాత్రమే (left_only), లేదా కుడి డేటాఫ్రేమ్ నుండి మాత్రమే (right_only) అని సూచిస్తుంది.
విలీన రకాలను ధృవీకరించడం
validate పారామీటర్ విలీన ఆపరేషన్ డేటాఫ్రేమ్ల మధ్య ఆశించిన సంబంధ రకాలతో (ఉదాహరణకు, 'one_to_one', 'one_to_many') సరిపోలుతుందని నిర్ధారిస్తుంది. ఇది డేటా అస్థిరతలు మరియు లోపాలను నిరోధించడంలో సహాయపడుతుంది.
ఉదాహరణ:
# Example with one-to-one validation
df_users = pd.DataFrame({
'user_id': [1, 2, 3],
'username': ['john_doe', 'jane_smith', 'peter_jones']
})
df_profiles = pd.DataFrame({
'user_id': [1, 2, 3],
'profile_description': ['Software Engineer', 'Data Scientist', 'Project Manager']
})
# Performing a one-to-one merge with validation
merged_df = pd.merge(df_users, df_profiles, on='user_id', validate='one_to_one')
print(merged_df)
విలీనం పేర్కొన్న ధృవీకరణను ఉల్లంఘిస్తే (ఉదాహరణకు, 'one_to_one' పేర్కొన్నప్పుడు అనేక-నుండి-ఒక సంబంధం), MergeError సృష్టించబడుతుంది, ఇది సంభావ్య డేటా సమగ్రత సమస్యల గురించి మీకు తెలియజేస్తుంది.
పనితీరు పరిశీలనలు
డేటాఫ్రేమ్లను విలీనం చేయడం మరియు చేర్చడం గణనపరంగా ఖరీదైనది, ముఖ్యంగా పెద్ద డేటాసెట్ల కోసం. పనితీరును మెరుగుపరచడానికి ఇక్కడ కొన్ని చిట్కాలు ఉన్నాయి:
- సరియైన జాయిన్ రకాన్ని ఉపయోగించండి: సరియైన జాయిన్ రకాన్ని ఎంచుకోవడం పనితీరుపై గణనీయమైన ప్రభావాన్ని చూపుతుంది. ఉదాహరణకు, మీకు సరిపోలిన అడ్డు వరుసలు మాత్రమే అవసరమైతే, ఇన్నర్ జాయిన్ను ఉపయోగించండి.
- జాయిన్ నిలువు వరుసలను సూచిక చేయండి: జాయిన్ నిలువు వరుసలను సూచిక చేయడం విలీన ప్రక్రియను వేగవంతం చేస్తుంది.
- సరియైన డేటా రకాలను ఉపయోగించండి: జాయిన్ నిలువు వరుసలు అనుకూలమైన డేటా రకాలను కలిగి ఉన్నాయని నిర్ధారించుకోండి.
- అనవసరమైన కాపీలను నివారించండి: డేటా యొక్క అనవసరమైన కాపీలను సృష్టించకుండా ఉండటానికి
pd.merge()మరియుdf.join()లోcopy=Falseను సెట్ చేయండి.
ముగింపు
డేటా విశ్లేషణలో డేటాఫ్రేమ్లను విలీనం చేయడం మరియు చేర్చడం ప్రాథమిక కార్యకలాపాలు. విభిన్న జాయిన్ రకాలు మరియు పద్ధతులను అర్థం చేసుకోవడం ద్వారా, మీరు వివిధ వనరుల నుండి డేటాను సమర్థవంతంగా కలపవచ్చు మరియు విశ్లేషించవచ్చు, విలువైన అంతర్దృష్టులను అన్లాక్ చేయవచ్చు మరియు సమాచారంతో కూడిన నిర్ణయం తీసుకోవచ్చు. అమ్మకాల డేటాను ఉత్పత్తి సమాచారంతో కలపడం నుండి ప్రపంచ సరఫరా గొలుసులను విశ్లేషించడం వరకు, ఈ పద్ధతులను ప్రావీణ్యం చేసుకోవడం సంక్లిష్ట డేటా మానిప్యులేషన్ పనులను నమ్మకంతో ఎదుర్కోవడానికి మీకు అధికారం ఇస్తుంది. పెద్ద డేటాసెట్లతో పనిచేసేటప్పుడు పనితీరు ప్రభావాలను పరిగణనలోకి తీసుకోవడం మరియు మరింత దృఢమైన మరియు అంతర్దృష్టిగల విశ్లేషణ కోసం indicator మరియు validate పారామీటర్ల వంటి అధునాతన లక్షణాలను ఉపయోగించుకోవడం గుర్తుంచుకోండి.