मैं लूप के लिए एक ((25520*43),3) पांडा डेटाफ्रेम बनाना चाहता हूं।

मैंने डेटाफ्रेम बनाया है जैसे:

lst=['Region', 'GeneID', 'DistanceValue']

df=pd.DataFrame(index=lst).T

और अब मैं 25520 मानों के साथ 43 बार 'क्षेत्र' भरना चाहता हूं। इसके अलावा जीनआईडी और डिस्टेंसवैल्यू।

इसके लिए यह मेरा लूप के लिए है:

for i in range(43):
    df.DistanceValue = np.sort(distance[i,:])
    df.Region = np.ones(25520) * i
    args = np.argsort(distance[i,:])
    df.GeneID = ids[int(args[i])]

लेकिन मेरे df से बस (25520, 3) मौजूद है। तो मेरे पास 43 भरने के लिए अंतिम पुनरावृत्ति है। मैं अपने डीएफ में सभी पुनरावृत्तियों को एक से 43 तक कैसे जोड़ सकता हूं?

1
Anja 1 अप्रैल 2020, 10:28

1 उत्तर

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

मैं आपके उदाहरण को पुन: पेश नहीं कर सकता लेकिन आप कुछ सुधार कर सकते हैं:

lst=['Region', 'GeneID', 'DistanceValue']
df=pd.DataFrame(index=lst).T

region = []
for i in range(43):
    region.append(np.ones(25520))

flat_list = [item for sublist in region for item in sublist]
df.Region = flat_list

पहले लूप के बाहर एक नई सूची बनाएं और फिर इस सूची में लूप के भीतर मान जोड़ें। flat_list सभी 43 सूचियों को एक में समेकित कर देगा और फिर आप इसे DataFrame में मैप कर सकते हैं। लूप के बाहर DataFrame मान भरना हमेशा आसान होता है।

इसी तरह आप सभी 3 कॉलम अपडेट कर सकते हैं।

1
ManojK 1 अप्रैल 2020, 07:53