मेरे पास इस तरह की एक सूची है:

lst = ['2021_01_21__11_10_54_1__13928_snapshot.jpg',
       '2021_01_21__12_27_44_1__13934_snapshot.jpg',
       '2021_01_21__11_11_08_2__13928_snapshot.jpg',
       '2021_01_21__12_27_56_2__13934_snapshot.jpg',
       '2021_01_21__11_11_19_3__13928_snapshot.jpg',
       '2021_01_21__12_28_08_3__13934_snapshot.jpg']

मैं एक डेटाफ्रेम बनाना चाहता हूं ताकि प्रत्येक कॉलम का प्रतिनिधित्व किया जा सके:

def by_number(path):
    base_name = os.path.basename(path)
    return re.findall('[\_]{2}(\d{5})',lst)

और पंक्तियों का प्रतिनिधित्व किया जाएगा:

def by_index(path):
    base_name = os.path.basename(path)
    return re.findall('\_(\d)[\_]{2}',lst)

तो अंततः मुझे एक डेटाफ़्रेम मिलेगा जो कुछ इस तरह दिखता है:

enter image description here

1
Ziv Kassner 17 फरवरी 2021, 22:34
क्या आप उदाहरण दे सकते हैं। यह स्पष्ट नहीं है
 – 
Aven Desta
17 फरवरी 2021, 22:39
हां, जैसा आपने पूछा संपादित किया गया
 – 
Ziv Kassner
17 फरवरी 2021, 22:47
आशा है इससे आपका प्रश्न हल हो गया होगा। इसे हल करने में मुझे 30 मिनट लगे।
 – 
Aven Desta
18 फरवरी 2021, 00:18

1 उत्तर

सबसे बढ़िया उत्तर
name_list = ['2021_01_21__11_10_54_1__13928_snapshot.jpg',
       '2021_01_21__12_27_44_1__13934_snapshot.jpg',
       '2021_01_21__11_11_08_2__13928_snapshot.jpg',
       '2021_01_21__12_27_56_2__13934_snapshot.jpg',
       '2021_01_21__11_11_19_3__13928_snapshot.jpg',
       '2021_01_21__12_28_08_3__13934_snapshot.jpg']

import re
import pandas as pd

df = pd.DataFrame([[0]], columns=['count']) # initialize dataframe

for name in name_list:
    count = re.search('\_(\d)[\_]{2}',name).group(1)
    col = re.search('[\_]{2}(\d{5})',name).group(1)
    if ((df['count'] == count)).any():
        df.loc[df['count'] == count, col] = name
    else:
        new_row = pd.DataFrame([[count,name]], columns=['count',col])
        df = df.append(new_row)
df.set_index('count', inplace=True)
print(df)

RESULT

1
Aven Desta 18 फरवरी 2021, 00:15
1
काम पूरा करने के बाद आप पहली पंक्ति को df = df.iloc[1:] से हटा सकते हैं
 – 
Aven Desta
18 फरवरी 2021, 00:20