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

Pandas เป็นห้องสมุด Python สำหรับการจัดการและวิเคราะห์ข้อมูลเช่น dataframes, อนุกรมเวลาหลายมิติและชุดข้อมูลแบบตัดขวางซึ่งมักพบในสถิติ, ผลการทดลองทางวิทยาศาสตร์, เศรษฐมิติหรือการเงิน Pandas เป็นหนึ่งในห้องสมุดวิทยาศาสตร์ข้อมูลที่สำคัญใน Python

3
การรับดัชนีของแถวในแพนด้าใช้ฟังก์ชัน
ฉันกำลังพยายามเข้าถึงดัชนีของแถวในฟังก์ชั่นที่นำไปใช้ทั่วทั้งรายการDataFrameใน Pandas ฉันมีสิ่งนี้: df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) >>> df a b c 0 1 2 3 1 4 5 6 และฉันจะกำหนดฟังก์ชันที่เข้าถึงองค์ประกอบด้วยแถวที่กำหนด def rowFunc(row): return row['a'] + row['b'] * row['c'] ฉันสามารถใช้มันได้ดังนี้: df['d'] = df.apply(rowFunc, axis=1) >>> df a b c d 0 1 2 3 7 1 4 5 6 34 …
121 python  pandas  dataframe 


11
จะเขียนลงไฟล์ excel ที่มีอยู่โดยไม่เขียนทับข้อมูล (โดยใช้แพนด้า) ได้อย่างไร?
ฉันใช้แพนด้าเขียนลงในไฟล์ excel ในลักษณะต่อไปนี้: import pandas writer = pandas.ExcelWriter('Masterfile.xlsx') data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2']) writer.save() Masterfile.xlsx ประกอบด้วยแท็บต่างๆอยู่แล้ว อย่างไรก็ตามยังไม่มี "Main" หมีแพนด้าเขียนลงในแผ่นงาน "หลัก" อย่างถูกต้องขออภัยที่มันลบแท็บอื่น ๆ ทั้งหมดด้วย

11
ค้นหาค่าสูงสุดของคอลัมน์และส่งคืนค่าแถวที่เกี่ยวข้องโดยใช้ Pandas
การใช้ Python Pandas ฉันพยายามค้นหาCountry& Placeด้วยค่าสูงสุด สิ่งนี้ส่งคืนค่าสูงสุด: data.groupby(['Country','Place'])['Value'].max() แต่วิธีการที่ฉันจะได้รับที่สอดคล้องกันCountryและPlaceชื่อ?
121 python  pandas  dataframe  max 

3
จะระงับคำเตือนในอนาคตของแพนด้าได้อย่างไร?
เมื่อฉันเรียกใช้โปรแกรม Pandas จะให้ 'คำเตือนในอนาคต' เหมือนด้านล่างทุกครั้ง D:\Python\lib\site-packages\pandas\core\frame.py:3581: FutureWarning: rename with inplace=True will return None from pandas 0.11 onward " from pandas 0.11 onward", FutureWarning) ฉันได้รับข้อความแล้ว แต่ฉันแค่ต้องการหยุดให้ Pandas แสดงข้อความดังกล่าวซ้ำแล้วซ้ำอีกมีพารามิเตอร์ buildin ใดที่ฉันสามารถตั้งค่าเพื่อให้ Pandas ไม่ปรากฏ 'คำเตือนในอนาคต' หรือไม่

1
Pandas ใช้กฎอะไรในการสร้างมุมมองเทียบกับสำเนา
ฉันสับสนเกี่ยวกับกฎที่ Pandas ใช้เมื่อตัดสินใจว่าการเลือกจาก dataframe เป็นสำเนาของ dataframe ดั้งเดิมหรือมุมมองจากต้นฉบับ ตัวอย่างเช่นถ้าฉันมี df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) ฉันเข้าใจว่าqueryส่งคืนสำเนาเพื่อให้เป็นเช่นนั้น foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 จะไม่มีผลกับ dataframe ดั้งเดิม, df. ฉันยังเข้าใจว่าสเกลาร์หรือส่วนที่ตั้งชื่อส่งคืนมุมมองดังนั้นการมอบหมายให้กับสิ่งเหล่านี้เช่น df.iloc[3] = 70 หรือ df.ix[1,'B':'E'] = 222 จะเปลี่ยนdfไป แต่ฉันหลงทางเมื่อต้องเจอกับคดีที่ซับซ้อนกว่านี้ ตัวอย่างเช่น, df[df.C <= df.B] = 7654321 การเปลี่ยนแปลงdfแต่ df[df.C <= df.B].ix[:,'B':'E'] ไม่. มีกฎง่ายๆไหมที่นุ่นใช้ว่าฉันหายไป? …

8
คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d
ฉันต้องพอดีRandomForestRegressorจากsklearn.ensemble. forest = ensemble.RandomForestRegressor(**RF_tuned_parameters) model = forest.fit(train_fold, train_y) yhat = model.predict(test_fold) รหัสนี้ใช้งานได้ตลอดจนกระทั่งฉันทำการประมวลผลข้อมูลล่วงหน้า ( train_y) ข้อความแสดงข้อผิดพลาดระบุว่า: DataConversionWarning: คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d โปรดเปลี่ยนรูปร่างของ y เป็น (n_samples,) เช่นใช้ ravel () รุ่น = forest.fit (train_fold, train_y) ก่อนหน้าtrain_yนี้เป็นซีรี่ส์ตอนนี้เป็นอาร์เรย์จำนวนนับ (เป็นคอลัมน์เวกเตอร์) ถ้าฉันใช้train_y.ravel()มันจะกลายเป็นเวกเตอร์แถวและไม่มีข้อความแสดงข้อผิดพลาดปรากฏขึ้นผ่านขั้นตอนการคาดคะเนใช้เวลานานมาก (จริง ๆ แล้วมันจะไม่เสร็จสิ้น ... ) ในเอกสารของRandomForestRegressorฉันพบว่าtrain_yควรกำหนดเป็นy : array-like, shape = [n_samples] or [n_samples, n_outputs] ความคิดใด …

3
จะทดสอบได้อย่างไรว่าสตริงมีสตริงย่อยในรายการเป็นแพนด้าหรือไม่?
มีฟังก์ชันใดบ้างที่จะเทียบเท่ากับการรวมกันของdf.isin()และdf[col].str.contains()? ตัวอย่างเช่นพูดว่าฉันมีซีรีส์ s = pd.Series(['cat','hat','dog','fog','pet'])และฉันต้องการค้นหาสถานที่ทั้งหมดที่sมีทั้งหมด['og', 'at']ฉันอยากได้ทุกอย่างยกเว้น 'สัตว์เลี้ยง' ฉันมีวิธีแก้ปัญหา แต่มันค่อนข้างไม่ดี: searchfor = ['og', 'at'] found = [s.str.contains(x) for x in searchfor] result = pd.DataFrame[found] result.any() มีวิธีที่ดีกว่านี้หรือไม่?

5
เพิ่มคำนำหน้าสตริงให้กับแต่ละค่าในคอลัมน์สตริงโดยใช้ Pandas
ฉันต้องการต่อท้ายสตริงที่จุดเริ่มต้นของแต่ละค่าในคอลัมน์ดังกล่าวของดาต้าเฟรมแพนด้า (อย่างหรูหรา) ฉันได้หาวิธีการประเภทนี้แล้วและฉันกำลังใช้: df.ix[(df['col'] != False), 'col'] = 'str'+df[(df['col'] != False), 'col'] นี่ดูเหมือนเป็นสิ่งที่ไม่ดีอย่างหนึ่งที่ต้องทำ - คุณรู้วิธีอื่นหรือไม่ (ซึ่งอาจเพิ่มอักขระในแถวที่คอลัมน์นั้นเป็น 0 หรือ NaN) ในกรณีที่ยังไม่ชัดเจนฉันต้องการเปลี่ยน: col 1 a 2 0 เข้าสู่: col 1 stra 2 str0

14
วิธีการที่ผิดปกติ (ระเบิด) คอลัมน์ใน DataFrame แพนด้า
ฉันมี DataFrame ต่อไปนี้โดยที่หนึ่งในคอลัมน์เป็นวัตถุ (เซลล์ประเภทรายการ): df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]}) df Out[458]: A B 0 1 [1, 2] 1 2 [1, 2] ผลลัพธ์ที่ฉันคาดหวังคือ: A B 0 1 1 1 1 2 3 2 1 4 2 2 ฉันควรทำอย่างไรเพื่อให้บรรลุเป้าหมายนี้ คำถามที่เกี่ยวข้อง แพนด้า: เมื่อเนื้อหาของเซลล์เป็นรายการให้สร้างแถวสำหรับแต่ละองค์ประกอบในรายการ คำถามและคำตอบที่ดี แต่จัดการเพียงคอลัมน์เดียวที่มีรายการ (ในคำตอบของฉันฟังก์ชั่น self-def จะใช้งานได้กับหลายคอลัมน์นอกจากนี้คำตอบที่ยอมรับคือใช้เวลามากที่สุดapplyซึ่งไม่แนะนำให้ตรวจสอบข้อมูลเพิ่มเติมเมื่อฉันต้องการ การใช้แพนด้าใช้ () ในรหัสของฉัน? )
119 python  pandas  dataframe 

6
ละเว้น NaN ที่มี str.contains
ฉันต้องการค้นหาแถวที่มีสตริงดังนี้: DF[DF.col.str.contains("foo")] อย่างไรก็ตามสิ่งนี้ล้มเหลวเนื่องจากองค์ประกอบบางอย่างเป็น NaN: ValueError: ไม่สามารถสร้างดัชนีด้วยเวกเตอร์ที่มีค่า NA / NaN ดังนั้นฉันจึงหันไปหาสิ่งที่สับสน DF[DF.col.notnull()][DF.col.dropna().str.contains("foo")] มีวิธีที่ดีกว่า?
118 python  pandas 

17
วิธีการแปลงผลลัพธ์ SQL Query เป็น PANDAS Data Structure?
ความช่วยเหลือใด ๆ เกี่ยวกับปัญหานี้จะได้รับการชื่นชมอย่างมาก โดยพื้นฐานแล้วฉันต้องการเรียกใช้แบบสอบถามไปยังฐานข้อมูล SQL ของฉันและจัดเก็บข้อมูลที่ส่งคืนเป็นโครงสร้างข้อมูล Pandas ฉันได้แนบรหัสสำหรับแบบสอบถาม ฉันกำลังอ่านเอกสารเกี่ยวกับ Pandas แต่ฉันมีปัญหาในการระบุประเภทการส่งคืนของคำถามของฉัน ฉันพยายามพิมพ์ผลการสืบค้น แต่ไม่ได้ให้ข้อมูลที่เป็นประโยชน์ ขอบคุณ !!!! from sqlalchemy import create_engine engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING') connection2 = engine2.connect() dataid = 1022 resoverall = connection2.execute(" SELECT sum(BLABLA) AS BLA, sum(BLABLABLA2) AS BLABLABLA2, sum(SOME_INT) AS SOME_INT, sum(SOME_INT2) AS SOME_INT2, 100*sum(SOME_INT2)/sum(SOME_INT) AS …

4
แพนด้าแปลงบางคอลัมน์เป็นแถว
ดังนั้นชุดข้อมูลของฉันจึงมีข้อมูลตามสถานที่สำหรับ n วันที่ ปัญหาคือจริงๆแล้วแต่ละวันที่เป็นส่วนหัวของคอลัมน์ต่างกัน ตัวอย่างเช่น CSV มีลักษณะดังนี้ location name Jan-2010 Feb-2010 March-2010 A "test" 12 20 30 B "foo" 18 20 25 สิ่งที่ฉันต้องการคือให้มันดูเหมือน location name Date Value A "test" Jan-2010 12 A "test" Feb-2010 20 A "test" March-2010 30 B "foo" Jan-2010 18 B "foo" Feb-2010 20 B "foo" March-2010 …
118 python  pandas 

8
วิธีเปลี่ยนรูปแบบวันที่และเวลาในแพนด้า
ดาต้าเฟรมของฉันมีDOBคอลัมน์ (รูปแบบตัวอย่าง1/1/2016) ซึ่งโดยค่าเริ่มต้นจะถูกแปลงเป็นแพนด้า dtype 'object':DOB object แปลงนี้เป็นรูปแบบวันที่มีdf['DOB'] = pd.to_datetime(df['DOB'])วันที่ได้รับการแปลง: 2016-01-26และเป็น:dtypeDOB datetime64[ns] ตอนนี้ฉันต้องการแปลงรูปแบบวันที่นี้เป็น01/26/2016หรือในรูปแบบวันที่ทั่วไปอื่น ๆ ฉันต้องทำอย่างไร? ไม่ว่าฉันจะลองใช้วิธีใดก็ตามมันจะแสดงวันที่ใน2016-01-26รูปแบบเสมอ

5
วิธีเพิ่มหัวเรื่องในซีบอร์นบ็อกซ์พล็อต
ดูเหมือนจะเป็น Google ที่ใช้งานได้ดี แต่ไม่พบสิ่งที่ใช้งานได้ทางออนไลน์ ฉันได้ลองทั้งสองsns.boxplot('Day', 'Count', data= gg).title('lalala')และsns.boxplot('Day', 'Count', data= gg).suptitle('lalala'). ไม่มีผล ฉันคิดว่าอาจเป็นเพราะฉันทำงานกับ matplotlib ด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.