मेरे पास एक डीएफ है जिसे मैं कॉलम 'नाम' और 'प्लान' में मानों के आधार पर कई डीएफएस में विभाजित करना चाहता हूं। नीचे df के लिए, मैं ६ dfs में विभाजित करना चाह रहा हूँ जहाँ पंक्तियाँ १ और ६ एक ही df . में होंगी

डीएफ:

City    State       Name     Plan   Price
 A        CA     Star Inn     CTS    50
 B        CA      1 Inn       KVG    100
 C        IN     GS Hotel     KHA    25
 D        FL     HJ Resort    2QN    45
 E        AL     PQ Inn       POI    55
 A        CA     Star Inn     CTS    80
 A        CA     Star Inn     MNB    65

वांछित आउटपुट

Df1:

City    State       Name     Plan   Price
 A        CA     Star Inn     CTS    50
 A        CA     Star Inn     CTS    80

Df2:

City    State       Name     Plan   Price
 B        CA      1 Inn       KVG    100

और इसी तरह df6 तक...

1
Suhas N 31 मार्च 2021, 01:27

2 जवाब

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

यह परीक्षा डेटाफ़्रेम को Name और Plan से विभाजित करेगी और उन्हें प्रिंट करेगी:

dataframes = []
for _, d in df.groupby(["Name", "Plan"]):
    dataframes.append(d)

# print it:
for d in dataframes:
    print(d)
    print("-" * 80)

प्रिंट:

  City State   Name Plan  Price
1    B    CA  1_Inn  KVG    100
--------------------------------------------------------------------------------
  City State      Name Plan  Price
2    C    IN  GS_Hotel  KHA     25
--------------------------------------------------------------------------------
  City State       Name Plan  Price
3    D    FL  HJ_Resort  2QN     45
--------------------------------------------------------------------------------
  City State    Name Plan  Price
4    E    AL  PQ_Inn  POI     55
--------------------------------------------------------------------------------
  City State      Name Plan  Price
0    A    CA  Star_Inn  CTS     50
5    A    CA  Star_Inn  CTS     80
--------------------------------------------------------------------------------
  City State      Name Plan  Price
6    A    CA  Star_Inn  MNB     65
--------------------------------------------------------------------------------
2
Andrej Kesely 31 मार्च 2021, 01:36

पांडा में group_by का उपयोग करके आपको एक ग्रॉपर ऑब्जेक्ट मिलेगा:

grouped = df.groupby(["Name","Plan"])

जब आप इसके माध्यम से पुनरावृति करते हैं, तो यह आपको एक टपल देगा जहां पहला तत्व समूह है (इस मामले में, ("Name","Plan")) और दूसरा तत्व, विभाजन dfs:

grouped = df.groupby(["Name","Plan"])
for _, split_df in grouped:
    print(split_df)
    print("-----")

तुम्हें देंगे:

  City State   Name Plan  Price
1    B    CA  1 Inn  KVG    100
-----
  City State      Name Plan  Price
2    C    IN  GS Hotel  KHA     25
-----
  City State       Name Plan  Price
3    D    FL  HJ Resort  2QN     45
-----
  City State    Name Plan  Price
4    E    AL  PQ Inn  POI     55
-----
  City State      Name Plan  Price
0    A    CA  Star Inn  CTS     50
5    A    CA  Star Inn  CTS     80
-----
  City State      Name Plan  Price
6    A    CA  Star Inn  MNB     65
-----
1
Cheukting 31 मार्च 2021, 02:00