คำถามติดแท็ก pandas-groupby

เพื่อใช้ในการจัดกลุ่มตัวแปรเข้าด้วยกันตามเงื่อนไขที่กำหนด และใช้เฉพาะกับความเกี่ยวข้องกับไลบรารี "แพนด้า" เท่านั้น

9
การแปลงเอาต์พุต Pandas GroupBy จาก Series เป็น DataFrame
ฉันเริ่มด้วยข้อมูลอินพุตแบบนี้ df1 = pandas.DataFrame( { "Name" : ["Alice", "Bob", "Mallory", "Mallory", "Bob" , "Mallory"] , "City" : ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"] } ) ซึ่งเมื่อพิมพ์ปรากฏเป็นดังนี้: City Name 0 Seattle Alice 1 Seattle Bob 2 Portland Mallory 3 Seattle Mallory 4 Seattle Bob 5 Portland Mallory การจัดกลุ่มนั้นง่ายพอ: g1 = df1.groupby( …

7
รับสถิติสำหรับแต่ละกลุ่ม (เช่นการนับค่าเฉลี่ยเป็นต้น) โดยใช้หมีแพนด้า GroupBy?
ฉันมีกรอบข้อมูลdfและฉันใช้หลายคอลัมน์จากgroupby: df['col1','col2','col3','col4'].groupby(['col1','col2']).mean() ในวิธีข้างต้นฉันเกือบจะได้รับตาราง (data frame) ที่ฉันต้องการ สิ่งที่ขาดหายไปคือคอลัมน์เพิ่มเติมที่มีจำนวนแถวในแต่ละกลุ่ม กล่าวอีกนัยหนึ่งฉันมีความหมาย แต่ฉันก็อยากจะรู้ว่าจำนวนที่ใช้ในการรับค่าเฉลี่ย ตัวอย่างเช่นในกลุ่มแรกมี 8 ค่าและใน 10 อันดับสองและอื่น ๆ กล่าวโดยย่อ: ฉันจะรับสถิติกลุ่มอย่างชาญฉลาดสำหรับดาต้าเฟรมได้อย่างไร

2
วิธีหมุนเดตาล็อกไฟล์
สาระสำคัญคืออะไร? ฉันจะหมุนได้อย่างไร นี่คือสาระสำคัญหรือไม่? รูปแบบยาวเป็นรูปแบบกว้าง? ฉันเห็นคำถามมากมายที่ถามเกี่ยวกับตารางเดือย แม้ว่าพวกเขาไม่รู้ว่าพวกเขากำลังถามเกี่ยวกับตารางสาระสำคัญพวกเขามักจะ มันแทบเป็นไปไม่ได้ที่จะเขียนคำถามและคำตอบที่ยอมรับได้ซึ่งครอบคลุมทุกแง่มุมของการหมุนเหวี่ยง ... ... แต่ฉันจะปล่อยมันไป ปัญหาเกี่ยวกับคำถามและคำตอบที่มีอยู่ก็คือคำถามมักมุ่งเน้นไปที่ความแตกต่างที่ OP มีปัญหาในการพูดคุยเพื่อใช้คำตอบที่ดีที่มีอยู่จำนวนมาก อย่างไรก็ตามไม่มีคำตอบใดที่พยายามให้คำอธิบายที่ครอบคลุม (เพราะมันเป็นงานที่น่ากลัว) ดูตัวอย่างจากการค้นหา googleของฉัน วิธีหมุนเดตาไฟล์ใน Pandas ได้อย่างไร คำถามและคำตอบที่ดี แต่คำตอบเพียงตอบคำถามเฉพาะพร้อมคำอธิบายเล็กน้อย pandas pivot table ไปยัง data frame ในคำถามนี้ OP เกี่ยวข้องกับผลลัพธ์ของ pivot คือลักษณะของคอลัมน์ OP ต้องการให้ดูเหมือน R นี่ไม่ได้มีประโยชน์มากสำหรับผู้ใช้แพนด้า pandas pivoting dataframe, แถวที่ซ้ำกัน อีกคำถามที่ดี แต่คำตอบนั้นเน้นที่วิธีหนึ่งคือ pd.DataFrame.pivot ดังนั้นเมื่อใดก็ตามที่มีคนค้นหาpivotพวกเขาจะได้ผลลัพธ์เป็นระยะ ๆ ซึ่งไม่น่าจะตอบคำถามเฉพาะของพวกเขา ติดตั้ง คุณอาจสังเกตเห็นว่าฉันตั้งชื่อคอลัมน์ของฉันและค่าคอลัมน์ที่เกี่ยวข้องอย่างชัดเจนเพื่อให้สอดคล้องกับวิธีที่ฉันจะ pivot …

11
จะจัดกลุ่มแถวข้อมูลลงในรายการใน pandas groupby ได้อย่างไร?
ฉันมีกรอบข้อมูลนุ่นdfเหมือน: a b A 1 A 2 B 5 B 5 B 4 C 6 ฉันต้องการจัดกลุ่มตามคอลัมน์แรกและรับคอลัมน์ที่สองเป็นรายการในแถว : A [1,2] B [5,5,4] C [6] เป็นไปได้ไหมที่จะทำสิ่งนี้โดยใช้นุ่นกลุ่ม

11
รับแถวที่มีจำนวนสูงสุดในกลุ่มโดยใช้ groupby
ฉันจะค้นหาแถวทั้งหมดใน dataframe แพนด้าซึ่งมีค่าสูงสุดได้อย่างไร countคอลัมน์หลังจากจัดกลุ่มตาม['Sp','Mt']คอลัมน์ได้อย่างไร ตัวอย่างที่ 1: dataFrame ต่อไปนี้ซึ่งฉันจัดกลุ่มตาม['Sp','Mt']: Sp Mt Value count 0 MM1 S1 a **3** 1 MM1 S1 n 2 2 MM1 S3 cb 5 3 MM2 S3 mk **8** 4 MM2 S4 bg **10** 5 MM2 S4 dgd 1 6 MM4 S2 rd 2 7 MM4 S2 …

5
วิธีเข้าถึง pandas groupby dataframe โดยใช้คีย์
ฉันจะเข้าถึง groupby dataframe ที่สอดคล้องกันในวัตถุ groupby โดยคีย์ได้อย่างไร ด้วย groupby ต่อไปนี้: rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar'] * 3, 'B': rand.randn(6), 'C': rand.randint(0, 20, 6)}) gb = df.groupby(['A']) ฉันสามารถย้ำผ่านมันเพื่อรับกุญแจและกลุ่ม: In [11]: for k, gp in gb: print 'key=' + str(k) print gp key=bar A B C 1 bar -0.611756 18 …

9
pandas GroupBy คอลัมน์ที่มีค่า NaN (หายไป)
ฉันมี DataFrame ที่มีค่าหายไปจำนวนมากในคอลัมน์ที่ฉันต้องการจัดกลุ่มตาม: import pandas as pd import numpy as np df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']}) In [4]: df.groupby('b').groups Out[4]: {'4': [0], '6': [2]} ดูว่า Pandas ทำดร็อปแถวด้วยค่าเป้าหมาย NaN (ฉันต้องการรวมแถวเหล่านี้ด้วย!) เนื่องจากฉันต้องการการดำเนินการหลายอย่าง (cols จำนวนมากมีค่าที่หายไป) และใช้ฟังก์ชันที่ซับซ้อนมากกว่าแค่สื่อกลาง (โดยทั่วไปคือป่าสุ่ม) ฉันต้องการหลีกเลี่ยงการเขียนโค้ดที่ซับซ้อนเกินไป ข้อเสนอแนะใด ๆ ฉันควรจะเขียนฟังก์ชั่นสำหรับสิ่งนี้หรือมีวิธีแก้ปัญหาง่ายๆหรือไม่?

3
การรวมคอลัมน์เดียวกันหลายรายการโดยใช้ pandas GroupBy.agg ()
มีแพนด้าในตัวเพื่อใช้ฟังก์ชันการรวมที่แตกต่างกันสองฟังก์ชันf1, f2กับคอลัมน์เดียวกันdf["returns"]โดยไม่ต้องเรียกagg()หลายครั้งหรือไม่? ตัวอย่างดาต้าเฟรม: import pandas as pd import datetime as dt pd.np.random.seed(0) df = pd.DataFrame({ "date" : [dt.date(2012, x, 1) for x in range(1, 11)], "returns" : 0.05 * np.random.randn(10), "dummy" : np.repeat(1, 10) }) ผิดทางวากยสัมพันธ์ แต่ถูกต้องโดยสังหรณ์ใจวิธีที่จะทำคือ: # Assume `f1` and `f2` are defined for aggregating. df.groupby("dummy").agg({"returns": f1, "returns": f2}) …

10
GroupBy แพนด้า DataFrame และเลือกค่าที่พบบ่อยที่สุด
ฉันมีกรอบข้อมูลที่มีคอลัมน์สตริงสามคอลัมน์ ฉันรู้ว่าค่าเดียวในคอลัมน์ที่ 3 ใช้ได้กับทุกค่าผสมของสองค่าแรก ในการล้างข้อมูลฉันต้องจัดกลุ่มตามกรอบข้อมูลตามสองคอลัมน์แรกและเลือกค่าที่พบบ่อยที่สุดของคอลัมน์ที่สามสำหรับแต่ละชุดค่าผสม รหัสของฉัน: import pandas as pd from scipy import stats source = pd.DataFrame({'Country' : ['USA', 'USA', 'Russia','USA'], 'City' : ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'], 'Short name' : ['NY','New','Spb','NY']}) print source.groupby(['Country','City']).agg(lambda x: stats.mode(x['Short name'])[0]) บรรทัดสุดท้ายของโค้ดใช้ไม่ได้มันขึ้นว่า "Key error" Short name "" และถ้าฉันพยายามจัดกลุ่มตามเมืองเท่านั้นฉันก็จะได้รับ AssertionError ฉันจะแก้ไขอะไรได้บ้าง?

4
pandas dataframe group โดย datetime month
พิจารณาไฟล์ csv: string,date,number a string,2/5/11 9:16am,1.0 a string,3/5/11 10:44pm,2.0 a string,4/22/11 12:07pm,3.0 a string,4/22/11 12:10pm,4.0 a string,4/29/11 11:59am,1.0 a string,5/2/11 1:41pm,2.0 a string,5/2/11 2:02pm,3.0 a string,5/2/11 2:56pm,4.0 a string,5/2/11 3:00pm,5.0 a string,5/2/14 3:02pm,6.0 a string,5/2/14 3:18pm,7.0 ฉันสามารถอ่านสิ่งนี้ได้และฟอร์แมตคอลัมน์วันที่ใหม่เป็นรูปแบบวันที่และเวลา: b=pd.read_csv('b.dat') b['date']=pd.to_datetime(b['date'],format='%m/%d/%y %I:%M%p') ฉันพยายามจัดกลุ่มข้อมูลตามเดือน ดูเหมือนว่าควรมีวิธีที่ชัดเจนในการเข้าถึงเดือนและจัดกลุ่มตามนั้น แต่ดูเหมือนจะทำไม่ได้ ไม่มีใครรู้วิธี? สิ่งที่ฉันกำลังพยายามคือการจัดทำดัชนีใหม่ตามวันที่: b.index=b['date'] ฉันสามารถเข้าถึงเดือนได้ดังนี้: b.index.month อย่างไรก็ตามฉันไม่สามารถหาฟังก์ชั่นที่จะรวมกันเป็นรายเดือนได้

4
เชื่อมต่อสตริงจากหลายแถวโดยใช้ Pandas groupby
ฉันต้องการรวมหลาย ๆ สตริงในดาต้าเฟรมโดยยึดตาม groupedby ใน Pandas นี่คือรหัสของฉันจนถึงตอนนี้: import pandas as pd from io import StringIO data = StringIO(""" "name1","hej","2014-11-01" "name1","du","2014-11-02" "name1","aj","2014-12-01" "name1","oj","2014-12-02" "name2","fin","2014-11-01" "name2","katt","2014-11-02" "name2","mycket","2014-12-01" "name2","lite","2014-12-01" """) # load string as stream into dataframe df = pd.read_csv(data,header=0, names=["name","text","date"],parse_dates=[2]) # add column with month df["month"] = df["date"].apply(lambda x: x.month) ฉันต้องการให้ผลลัพธ์สุดท้ายมีลักษณะดังนี้: ฉันไม่เข้าใจว่าฉันจะใช้ …

2
วิธีค้นหาค่าต่ำสุด N อันดับแรกจาก DataFrame, Python-3
ฉันมี Dataframe ด้านล่างด้วยฟิลด์ 'อายุ' ต้องการค้นหาอายุขั้นต่ำ 3 อันดับแรกจาก DataFrame DF = pd.DataFrame.from_dict({'Name':['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 'Age':[18, 45, 35, 70, 23, 24, 50, 65, 18, 23]}) DF['Age'].min() ต้องการอันดับสองอายุเช่น 18, 23 ในรายการวิธีการบรรลุเป้าหมายนี้ หมายเหตุ: DataFrame - DF มีข้อมูลซ้ำอายุเช่น 18 และ 23 ซ้ำสองครั้งต้องการค่าที่ไม่ซ้ำ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.