Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन पैंडास में टेम्पलेट का उपयोग करके DataFrame में नई पंक्तियाँ कैसे जोड़ें

परिचय

डेटा इंजीनियरिंग स्पेशलिस्ट होने के नाते, मैं अक्सर पंक्तियों की तुलना में अधिक डेराइव्ड कॉलम बनाने में लगा रहता हूं क्योंकि डेटा बनाने और विश्लेषण के लिए मुझे भेजने की भूमिका अन्य डेटाबेस स्पेशलिस्ट्स को संभालनी चाहिए। हालांकि, यह हर समय सच नहीं है।

हमें डेटा स्पेशलिस्ट टीम द्वारा हमें डेटा भेजने का इंतजार करने के बजाय सैंपल पंक्तियाँ बनानी पड़ती हैं। इस टॉपिक में मैं पंक्तियाँ बनाने के साफ ट्रिक्स दिखाऊंगा।

कैसे करें

इस रेसिपी में, हम .loc एट्रिब्यूट के साथ एक छोटे डेटासेट में पंक्तियाँ जोड़कर शुरू करेंगे और फिर .append मेथड का उपयोग करेंगे।

1. बाद में पंक्तियाँ जोड़ने के लिए एक डेटाफ्रेम बनाएं


import pandas as pd
import numpy as np

players_info = pd.DataFrame(data=[
    {"players": "Roger Federer", "titles": 20},
    {"players": "Rafael Nadal", "titles": 20},
    {"players": "Novak Djokovic", "titles": 17},
    {"players": "Andy Murray", "titles": 3}
], columns=["players", "titles"])

2. .loc एट्रिब्यूट का उपयोग करके नया खिलाड़ी जोड़ें


new_Player = ['Dominic Theim', 1]
players_info.loc[4] = new_Player
print(players_info)

3. .loc का उपयोग करके डेटाफ्रेम के अंत में नई पंक्ति जोड़ें (डिक्शनरी के साथ)


new_player = {'players': 'Daniel Medvedev', 'titles': 0}
players_info.loc[len(players_info)] = new_player
print(players_info)

4. पैंडास सीरीज़ का उपयोग करके डेटा जोड़ें


players_info.loc[len(players_info)] = pd.Series({'players': 'Andy Zverev', 'titles': 0})
print(players_info)

निष्कर्ष: .loc एट्रिब्यूट DataFrame में स्थानांतरित परिवर्तन करता है।

.append मेथड का उपयोग करना

.append मेथड कॉलिंग DataFrame को मॉडिफाई नहीं करता, बल्कि जोड़ी गई पंक्ति/पंक्तियों के साथ DataFrame की एक नई कॉपी लौटाता है।

.append का पहला आर्गुमेंट या तो दूसरा DataFrame, Series, डिक्शनरी, या सूची होना चाहिए।


# इंडेक्स के साथ DataFrame बनाएं
players_info = pd.DataFrame(data=[
    {"players": "Roger Federer", "titles": 20},
    {"players": "Rafael Nadal", "titles": 20},
    {"players": "Novak Djokovic", "titles": 17},
    {"players": "Andy Murray", "titles": 3}
], columns=["players", "titles"], index=["roger", "nadal", "djokovic", "murray"])

# .append मेथड का उपयोग करके नई पंक्ति (डिक्शनरी) जोड़ें
players_info.append({'players': 'Daniel Medvedev', 'titles': 0})

एरर: TypeError: Can only append a Series if ignore_index=True or if the Series has a name

जब मैंने डिक्शनरी जोड़ने की कोशिश की, तो इसने एक एक्सेप्शन उठाया जिसमें ignore_index=True पैरामीटर का उपयोग करने के लिए कहा गया।


new_df = players_info.append({'players': 'Daniel Medvedev', 'titles': 0}, ignore_index=True)
print(f" *** Original with index \n {players_info} \n\n\n *** Modified index \n {new_df}")

आउटपुट: जब ignore_index=True सेट होता है, तो पुराना इंडेक्स पूरी तरह से हटा दिया जाता है और 0 से n-1 तक एक RangeIndex से बदल दिया जाता है।

एक बार में कई पंक्तियाँ जोड़ना


player1 = pd.Series({'players': 'Andy Zverev', 'titles': 0}, name='zverev')
player2 = pd.Series({'players': 'Dominic Theim', 'titles': 1}, name='theim')
new_df_1 = players_info.append([player1, player2])
print(new_df_1)

कई कॉलम वाले DataFrame में टेम्पलेट का उपयोग करके पंक्तियाँ जोड़ना

अब जब आपने पंक्तियाँ जोड़ने के बेसिक्स देख लिए हैं, तो हम देखेंगे कि कई कॉलम वाले DataFrame में पंक्तियाँ कैसे जोड़ें।


df = pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")

इस डेटासेट में 12 कॉलम हैं और मैन्युअली नई पंक्तियों का डेटा दर्ज करते समय कॉलम नाम को गलत टाइप करना या एक को पूरी तरह से भूल जाना बहुत आसान है। तो हम इस समस्या से कैसे बच सकते हैं? खैर, एक तरीका है - बस कॉलम नामों का एक टेम्पलेट बनाएं।


columns_dictionary = df.iloc[0].to_dict()

तो अब आप समझ गए होंगे कि हमने पहली पंक्ति ली और इसे डिक्शनरी में बदल दिया। ठीक है, हमें कॉलम और वैल्यूज़ दोनों मिल गए, अब पुराने वैल्यूज़ को डिक्शनरी कॉम्प्रिहेंशन के साथ क्लियर करें, किसी भी पिछले स्ट्रिंग वैल्यू को खाली स्ट्रिंग और अन्य सभी को मिसिंग वैल्यूज़ असाइन करके।

यह डिक्शनरी अब आपके द्वारा दर्ज किए जाने वाले किसी भी नए डेटा के लिए टेम्पलेट के रूप में काम कर सकती है।


import datetime

new_data_dict = {}
for a, b in columns_dictionary.items():
    if isinstance(b, str):
        new_data_dict[a] = np.random.choice(list('abcde'))
    elif isinstance(b, datetime.date):
        new_data_dict[a] = np.nan
    else:
        new_data_dict[a] = np.nan

print(new_data_dict)
  1. पायथन में पैंडास DataFrame को CSV फ़ाइल में कैसे लिखें पायथन में पैंडास DataFrame को CSV फ़ाइल में कैसे लिखें

    पायथन में पैंडास DataFrame को CSV फ़ाइल में लिखने के लिए to_csv() विधि का उपयोग करें। सबसे पहले, आइए सूचियों का एक शब्दकोश बनाएं:# सूचियों का शब्दकोश d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_purchase: [2020-10-10, 2020-10-12, 2020-10-17, 2020-10-16, 2020-10-19, 2020-10-2

  1. - पायथन - पैंडास DataFrame को वर्ष के अनुसार कैसे समूहित करें?

    हम groupby() का उपयोग करके पैंडास DataFrame को समूहित करेंगे। ग्रूपर फ़ंक्शन का उपयोग करके उपयोग किए जाने वाले कॉलम का चयन करें। हम वर्ष-वार समूहित करेंगे और कार बिक्री रिकॉर्ड के लिए नीचे दिखाए गए उदाहरण के लिए वर्ष अंतराल के साथ पंजीकरण मूल्य का योग गणना करेंगे।सबसे पहले, मान लीजिए निम्नलिखित हमार

  1. पायथन - पैंडास डेटाफ्रेम से नल पंक्तियों को कैसे हटाएं पायथन - पैंडास डेटाफ्रेम से नल पंक्तियों को कैसे हटाएं

    पैंडास डेटाफ्रेम में नल पंक्तियों को हटाने के लिए, dropna() मेथड का उपयोग करें। मान लीजिए निम्नलिखित हमारी CSV फ़ाइल है जिसमें कुछ NaN यानी नल मान हैं: read_csv() का उपयोग करके CSV फ़ाइल पढ़ें। हमारा CSV डेस्कटॉप पर है: dataFrame = pd.read_csv(C:\\Users\\amit_\\Desktop\\CarRecords.csv) dropna() का