मैं अभी भी अजगर सीख रहा हूं, कृपया क्षमा करें यदि प्रश्न कुछ के लिए तुच्छ लगता है।

मेरे पास निम्नलिखित प्रारूप के साथ एक सीएसवी फ़ाइल है और मैं इसका एक छोटा खंड निकालना चाहता हूं और दूसरी सीएसवी फ़ाइल को लिखना चाहता हूं: यहां छवि विवरण दर्ज करें

तो, मैं यही करना चाहता हूं:

  1. बस अभिनेता_सूची 2 और संबंधित आईडी कॉलम के तहत प्रविष्टियां निकालें और इसे निम्नलिखित प्रारूप में एक सीएसवी फ़ाइल में लिखें।

enter image description here

चूंकि प्रारूप कुछ मूल्यों के बाद नियमित कॉलम हेडर नहीं है, मुझे यकीन नहीं है कि किसी विशेष कॉलम में सेल वैल्यू के आधार पर शुरुआती बिंदु का चयन कैसे करें। भले ही हम अभिनेता_सूची 2 पर विचार करें, फिर उसके अंतर्गत कितनी भी प्रविष्टियाँ हो सकती हैं। कृपया मुझे यह समझने में मदद करें कि क्या यह पांडा डेटाफ्रेम प्रोसेसिंग क्षमता का उपयोग करके किया जा सकता है।

अद्यतन: इसका कारण यह है कि मैं इसे स्वचालित करना चाहूंगा क्योंकि ऐसी हजारों फाइलें हो सकती हैं और अंतिम सीएसवी फ़ाइल बनाने के लिए उस जानकारी को मैन्युअल रूप से प्राप्त करना अव्यावहारिक होगा जिसमें अनिवार्य रूप से प्रत्येक फ़ाइल के लिए एक पंक्ति होगी।

-1
Aisha 7 जिंदा 2021, 10:36

2 जवाब

सबसे बढ़िया उत्तर

जैसा कि नूर-अल्लाह ने बताया है कि यहाँ स्वरूपण बहुत कम से कम कहने के लिए नियमित नहीं है। सबसे अच्छा आप यह कर सकते हैं यदि ऐसा है कि आपका डेटा हर बार इस तरह से बाहर आता है तो फ़ाइल की कुछ पंक्तियों को छोड़ना है:

import pandas as pd

df = pd.read_csv('blabla.csv', skiprows=list(range(17)), nrows=8)
df_res = df.loc[:, ['actor_list2', 'ID']]

यह आपको परिणाम प्राप्त करना चाहिए लेकिन यह देखते हुए कि कितना अनिश्चित स्वरूपण है, यह स्वचालित करने का कोई तरीका नहीं है। क्या होगा अगर अगली बार कोई और अभिनेता हो? या एक कम? यहां तक ​​कि नूर-अल्लाह का हल भी वहां मदद नहीं करेगा।

ईमानदारी से, आपको बस बेहतर डेटा मिलना चाहिए।

0
pavel 7 जिंदा 2021, 13:34

चूंकि CSV फ़ाइल आपके पास नियमित नहीं है, इसलिए बहुत सारी खाली स्थिति, जिसमें 'नैन' ऑब्जेक्ट शामिल हैं। इस बीच, स्तंभों को अनुक्रमित किया जाएगा।

मैं पढ़ने के लिए पांडा का उपयोग करूंगा

import pandas as pd
df = pd.read_csv("not_regular_format.csv", header=None)

फिर, डिक्शनरी को इनिशियलाइज़ करें और खाली करें ताकि परिणामों को स्टोर किया जा सके, और आउटपुट डेटाफ़्रेम बनाने के लिए इसका उपयोग किया जा सके, जो अंत में अपनी सामग्री को CSV फ़ाइल में भेजता है।

target={}

अब आपको दूसरे कॉलम में actor_list2 खोजने की जरूरत है जो कि इंडेक्स 0 वाला कॉलम है, और अगर यह मौजूद है, तो नाम और स्कोर को अगली पंक्तियों और कॉलम में स्टोर करना शुरू करें 1 और 2 शब्दकोश में target

rows_index = df[df[1] == 'actor_list2'].index
if len(rows_index) > 0:
    i = rows_index[0]
    while True:
        i += 1
        name = df.iloc[i, 1]
        score = df.iloc[i, 2]
        if pd.isna(name): # the names sequence is finished and 'nan' object exists.
            break
        target[name] = [score]

और अंत में, डेटाफ़्रेम का निर्माण करें और नई output.csv फ़ाइल लिखें

df_output=pd.DataFrame(target)
df_output.to_csv('output.csv')

अब, आप ऊपर दिए गए उदाहरण के साथ कहीं भी जा सकते हैं।

आपको कामयाबी मिले

0
Nour-Allah Hussein 7 जिंदा 2021, 13:22