मैं इस मुद्दे का सामना कर रहा हूं, जहां मेरे पास एक डेटाफ्रेम है, मान लीजिए df1:

>>> df1 = pd.DataFrame(data = np.arange(45).reshape(-1,9), columns = ['A1','B1', 'C1', 
                                                       'A2', 'B2', 'C2','A3','B3','C3'])
>>> df1

   A1  B1  C1  A2  B2  C2  A3  B3  C3
0   0   1   2   3   4   5   6   7   8
1   9  10  11  12  13  14  15  16  17
2  18  19  20  21  22  23  24  25  26
3  27  28  29  30  31  32  33  34  35
4  36  37  38  39  40  41  42  43  44

और दूसरा डेटाफ़्रेम df2:

>>> df2 = pd.DataFrame(data = np.arange(15).reshape(-1,3), columns = ['AB1','AB2','AB3'])
>>> df2

   AB1  AB2  AB3
0    0    1    2
1    3    4    5
2    6    7    8
3    9   10   11
4   12   13   14

अब मैं क्या चाहता हूं, df2 के कॉलम को df1 में विशिष्ट स्थितियों में सम्मिलित करना, ताकि df1 बन जाए (वास्तव में एक नया df भी काम करेगा):

>>> df1

   A1  AB1  B1  C1  A2  AB2  B2  C2  A3  AB3  B3  C3
0   0    0   1   2   3    1   4   5   6    2   7   8
1   9    3  10  11  12    4  13  14  15    5  16  17
2  18    6  19  20  21    7  22  23  24    8  25  26
3  27    9  28  29  30   10  31  32  33   11  34  35
4  36   12  37  38  39   13  40  41  42   14  43  44

मैं अब एक नया खाली डीएफ बनाकर इसे प्राप्त कर रहा हूं, फिर दोनों डीएफ के कॉलम पर पुनरावृत्ति कर रहा हूं, और फिर प्रत्येक कॉलम को क्रमिक रूप से जोड़ रहा हूं। जो अक्षम, बदसूरत है और डेटाफ्रेम के पूरे उद्देश्य को हरा देता है। तो मैं जानना चाहता हूं कि इसके लिए पहले से ही कोई तरीका है? मुझे यकीन नहीं है कि इस तरह के प्रश्न का उत्तर यहां पहले ही दिया जा चुका है, लेकिन मुझे यकीन है कि मुझे कोई परिणाम नहीं मिला। यदि इस पर पहले चर्चा की गई है, तो मुझे खुशी होगी अगर कोई मुझे इसकी ओर इशारा करता है।

2
Sayandip Dutta 27 सितंबर 2019, 09:57

1 उत्तर

@ जेज़्रेल के उत्तर के आधार पर, मुझे एक और समाधान मिला:

cols = np.insert(df1.columns,range(1,len(df1.columns.values),3),df2.columns)
df = pd.concat([df1, df2], axis=1)
df[cols]

   A1  Sum1  B1  C1  A2  Sum2  B2  C2  A3  Sum3  B3  C3
0   0     0   1   2   3     1   4   5   6     2   7   8
1   9     3  10  11  12     4  13  14  15     5  16  17
2  18     6  19  20  21     7  22  23  24     8  25  26
3  27     9  28  29  30    10  31  32  33    11  34  35
4  36    12  37  38  39    13  40  41  42    14  43  44
0
Sayandip Dutta 27 सितंबर 2019, 10:47