รวมคอลัมน์และสร้างคอลัมน์ใหม่ด้วยนุ่น

ฉันมี dataframe แพนด้าที่มีคอลัมน์ต่อไปนี้:

  1. ชื่อผลิตภัณฑ์
  2. จำนวนผลิตภัณฑ์ที่ขายในนิวยอร์ก (สมมติว่า 100)
  3. จำนวนผลิตภัณฑ์ที่ขายในแคลิฟอร์เนีย (สมมติว่า 50)

ดูเหมือนว่านี้:

Product     New York    California
Widget01    100         50

ฉันต้องการปรับรูปร่างเฟรมใหม่โดยใช้คอลัมน์ตำแหน่งสองคอลัมน์เพื่อสร้างคอลัมน์ใหม่ดังนี้:

Product     Location      Total Sold
Widget01    New York      100
Widget01    California    50

เราจะบรรลุเป้าหมายนี้ด้วยแพนด้าได้อย่างไร?


person kevingduck    schedule 21.09.2015    source แหล่งที่มา


คำตอบ (1)


คุณสามารถใช้ pandas.melt() -

pd.melt(df,id_vars='Product', var_name='Location',value_name='Total Sold')

การสาธิต -

In [72]: df
Out[72]:
    Product  New York  California
0  Widget01       100          50

In [73]: pd.melt(df,id_vars='Product', var_name='Location',value_name='Total Sold')
Out[73]:
    Product    Location  Total Sold
0  Widget01    New York         100
1  Widget01  California          50
person Anand S Kumar    schedule 21.09.2015
comment
ฉันเห็นด้วยกับ pd.melt แต่ฉันไม่เข้าใจ value_vars ของคุณ ทำไมไม่เพียงแค่ pd.melt(df, id_vars="Product", var_name="Location", value_name="Total Sold")? - person DSM; 21.09.2015
comment
ใช่ คุณแก้ไขถูกต้องแล้ว เพิ่งสังเกตว่าหากไม่ได้ตั้งค่า ระบบจะใช้คอลัมน์ทั้งหมดที่ไม่ได้ระบุเป็น id_vars ขอบคุณ - person Anand S Kumar; 21.09.2015