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

กรอบข้อมูลเป็นโครงสร้างข้อมูลแบบตาราง โดยทั่วไปจะมีข้อมูลที่แถวคือการสังเกตและคอลัมน์เป็นตัวแปรประเภทต่างๆ ในขณะที่ "data frame" หรือ "dataframe" เป็นคำที่ใช้สำหรับแนวคิดนี้ในหลายภาษา (R, Apache Spark, deedle, Maple, pandas library ใน Python และ DataFrames library ใน Julia) "table" เป็นคำที่ใช้ใน MATLAB และ SQL

13
วิธีการวางแถวของ Pandas DataFrame ที่มีค่าในคอลัมน์หนึ่งคือ NaN
ฉันมีสิ่งนี้DataFrameและต้องการเฉพาะระเบียนที่ไม่มีEPSคอลัมน์NaN: >>> df STK_ID EPS cash STK_ID RPT_Date 601166 20111231 601166 NaN NaN 600036 20111231 600036 NaN 12 600016 20111231 600016 4.3 NaN 601009 20111231 601009 NaN NaN 601939 20111231 601939 2.5 NaN 000001 20111231 000001 NaN NaN ... คือบางสิ่งบางอย่างที่ต้องการdf.drop(....)รับข้อมูลชื่อนี้: STK_ID EPS cash STK_ID RPT_Date 600016 20111231 600016 4.3 NaN …
753 python  pandas  dataframe  nan 


7
การเขียน DataFrame นุ่นเป็นไฟล์ CSV
ฉันมี dataframe เป็นหมีแพนด้าซึ่งฉันต้องการจะเขียนไปยังไฟล์ CSV ฉันกำลังทำสิ่งนี้โดยใช้: df.to_csv('out.csv') และได้รับข้อผิดพลาด: UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128) มีวิธีใดบ้างที่จะหลีกเลี่ยงสิ่งนี้ได้อย่างง่ายดาย (เช่นฉันมีอักขระ Unicode ในกรอบข้อมูลของฉัน)? และมีวิธีการเขียนไปยังไฟล์ที่คั่นด้วยแท็บแทนการใช้ CSV เช่นวิธีการ 'to-tab' (ที่ฉันไม่คิดว่ามีอยู่)?
714 python  csv  pandas  dataframe 

8
แปลงรายการพจนานุกรมเป็น DataFrame แพนด้า
ฉันมีรายการพจนานุกรมเช่นนี้: [{'points': 50, 'time': '5:00', 'year': 2010}, {'points': 25, 'time': '6:00', 'month': "february"}, {'points':90, 'time': '9:00', 'month': 'january'}, {'points_h1':20, 'month': 'june'}] และฉันต้องการเปลี่ยนให้เป็นหมีแพนด้าDataFrameเช่นนี้: month points points_h1 time year 0 NaN 50 NaN 5:00 2010 1 february 25 NaN 6:00 NaN 2 january 90 NaN 9:00 NaN 3 june NaN 20 NaN …

10
พริตตี้พิมพ์ Pandas Series / DataFrame ทั้งหมด
ฉันทำงานกับ Series และ DataFrames บนเทอร์มินัลเป็นจำนวนมาก ค่าเริ่มต้น__repr__สำหรับซีรี่ส์จะส่งคืนตัวอย่างที่ลดลงโดยมีค่าส่วนหัวและส่วนท้าย แต่ส่วนที่เหลือหายไป มีวิธีการพิมพ์สวย ๆ ในซีรีส์ / DataFrame ทั้งหมดหรือไม่? จะเป็นการดีที่จะสนับสนุนการจัดตำแหน่งที่เหมาะสมอาจจะเส้นขอบระหว่างคอลัมน์และอาจเข้ารหัสสีสำหรับคอลัมน์ที่แตกต่างกัน
651 python  pandas  dataframe 

3
iloc, ix และ loc แตกต่างกันอย่างไร?
มีใครบ้างที่สามารถอธิบายวิธีการหั่นทั้งสามวิธีนี้แตกต่างกัน ฉันเห็นเอกสารและฉันเห็นคำตอบเหล่านี้ แล้ว แต่ฉันก็ยังพบว่าตัวเองไม่สามารถอธิบายได้ว่าทั้งสามนั้นแตกต่างกันอย่างไร สำหรับฉันพวกเขาดูเหมือนจะเปลี่ยนได้ในส่วนใหญ่เพราะพวกเขาอยู่ในระดับที่ต่ำกว่าของการหั่น DataFrameตัวอย่างเช่นสมมติว่าเราต้องการที่จะได้รับห้าแถวแรกของ งานทั้งสามนี้เป็นอย่างไร df.loc[:5] df.ix[:5] df.iloc[:5] ใครบางคนสามารถนำเสนอสามกรณีที่ความแตกต่างในการใช้งานมีความชัดเจน?

15
จะจัดการกับ SettingWithCopyWarning ใน Pandas ได้อย่างไร?
พื้นหลัง ฉันเพิ่งอัพเกรด Pandas จาก 0.11 เป็น 0.13.0rc1 ตอนนี้แอปพลิเคชันกำลังเปิดตัวคำเตือนใหม่ ๆ มากมาย หนึ่งในนั้นเช่นนี้ E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_index,col_indexer] = value instead quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE ฉันต้องการรู้ว่ามันแปลว่าอะไร? ฉันจำเป็นต้องเปลี่ยนบางสิ่งหรือไม่ ฉันควรจะระงับการเตือนถ้าผมยืนยันการใช้งานquote_df['TVol'] = quote_df['TVol']/TVOL_SCALE? ฟังก์ชั่นที่ให้ข้อผิดพลาด def _decode_stock_quote(list_of_150_stk_str): """decode the webpage and …

14
วางระดับตัวคูณในเฟรมข้อมูลที่ถูกเซตย่อย
factorฉันมีกรอบข้อมูลที่มี เมื่อฉันสร้างเซตย่อยของ dataframe นี้โดยใช้subsetหรือฟังก์ชั่นการทำดัชนีอื่นเฟรมข้อมูลใหม่จะถูกสร้างขึ้น อย่างไรก็ตามfactorตัวแปรยังคงรักษาระดับเดิมทั้งหมดแม้เมื่อ / หากไม่มีอยู่ใน dataframe ใหม่ สิ่งนี้ทำให้เกิดปัญหาเมื่อทำการพล็อตแบบเหลี่ยมเพชรพลอยหรือใช้ฟังก์ชั่นที่ขึ้นอยู่กับระดับปัจจัย วิธีรวบรัดที่สุดในการลบระดับออกจากปัจจัยในดาต้าเฟรมใหม่คืออะไร นี่คือตัวอย่าง: df <- data.frame(letters=letters[1:5], numbers=seq(1:5)) levels(df$letters) ## [1] "a" "b" "c" "d" "e" subdf <- subset(df, numbers <= 3) ## letters numbers ## 1 a 1 ## 2 b 2 ## 3 c 3 # all levels are still …
543 r  dataframe  r-factor  r-faq 

12
ความแตกต่างระหว่างวงเล็บ [] และวงเล็บคู่ [[]] สำหรับการเข้าถึงองค์ประกอบของรายการหรือ dataframe
R มีสองวิธีที่แตกต่างกันสำหรับการเข้าถึงองค์ประกอบของรายการหรือ data.frame ที่: และ[][[]] อะไรคือความแตกต่างระหว่างสองสิ่งในสถานการณ์ที่ฉันควรใช้สถานการณ์หนึ่งกับอีกสถานการณ์หนึ่ง
521 r  list  dataframe  extract  r-faq 

20
แปลงรายการเป็นกรอบข้อมูล
ฉันมีรายการข้อมูลที่ซ้อนกัน ความยาวของมันคือ 132 และแต่ละรายการเป็นรายการความยาว 20 มีวิธีที่รวดเร็วในการแปลงโครงสร้างนี้เป็นกรอบข้อมูลที่มี 132 แถวและ 20 คอลัมน์ของข้อมูลหรือไม่? นี่คือตัวอย่างข้อมูลบางส่วนที่จะทำงานกับ: l <- replicate( 132, list(sample(letters, 20)), simplify = FALSE )
513 r  list  dataframe 

11
อ่านตารางที่มีขนาดใหญ่มากอย่างรวดเร็วเป็น dataframes
ฉันมีตารางขนาดใหญ่มาก (30 ล้านแถว) ที่ฉันต้องการโหลดเนื่องจาก dataframes ในอาร์ read.table()มีคุณสมบัติที่สะดวกมากมาย แต่ดูเหมือนว่ามีเหตุผลมากมายในการใช้งานที่จะทำให้สิ่งต่าง ๆ ช้าลง ในกรณีของฉันฉันสมมติว่าฉันรู้ชนิดของคอลัมน์ล่วงหน้าตารางไม่ได้มีส่วนหัวคอลัมน์หรือชื่อแถวและไม่มีตัวละครทางพยาธิวิทยาใด ๆ ที่ฉันต้องกังวล ฉันรู้ว่าการอ่านตารางเป็นรายการที่ใช้scan()สามารถทำได้ค่อนข้างเร็วเช่น: datalist <- scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0))) แต่บางส่วนของความพยายามของฉันในการแปลงไฟล์นี้เป็น dataframe ดูเหมือนว่าจะลดประสิทธิภาพการทำงานของข้างต้นด้วยปัจจัย 6: df <- as.data.frame(scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0)))) มีวิธีที่ดีกว่าในการทำเช่นนี้? หรืออาจเป็นแนวทางที่แตกต่างอย่างสิ้นเชิงกับปัญหา
503 r  import  dataframe  r-faq 

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( …

22
รวมสองคอลัมน์ของข้อความใน dataframe ใน pandas / python
ฉันมี dataframe 20 x 4000 ใน Python โดยใช้แพนด้า สองคอลัมน์เหล่านี้จะถูกตั้งชื่อและYear quarterฉันต้องการที่จะสร้างตัวแปรที่เรียกว่าperiodทำให้Year = 2000และเข้าquarter= q22000q2 มีใครสามารถช่วยได้บ้าง

21
วิธีตรวจสอบว่าค่าใด ๆ เป็น NaN ใน Pandas DataFrame
ใน Python Pandas วิธีที่ดีที่สุดในการตรวจสอบว่า DataFrame มีหนึ่ง NaN มากกว่าหนึ่งค่าคืออะไร ฉันรู้เกี่ยวกับฟังก์ชั่นpd.isnanนี้ แต่คืนค่า DataFrame ของ booleans สำหรับแต่ละองค์ประกอบ โพสต์นี้ตรงนี้ไม่ตอบคำถามของฉันอย่างแน่นอน
483 python  pandas  dataframe  nan 

16
สร้าง data.frame ที่ว่างเปล่า
ฉันพยายามเริ่มต้น data.frame โดยไม่ต้องแถวใด ๆ โดยทั่วไปฉันต้องการระบุชนิดข้อมูลสำหรับแต่ละคอลัมน์และตั้งชื่อ แต่ไม่ได้สร้างแถวใด ๆ สิ่งที่ดีที่สุดที่ฉันสามารถทำได้จนถึงตอนนี้คือ: df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), File="", User="", stringsAsFactors=FALSE) df <- df[-1,] ซึ่งสร้าง data.frame ด้วยแถวเดียวที่มีประเภทข้อมูลและชื่อคอลัมน์ทั้งหมดที่ฉันต้องการ แต่ยังสร้างแถวที่ไร้ประโยชน์ซึ่งจะต้องลบออก มีวิธีที่ดีกว่าในการทำเช่นนี้?
480 r  dataframe  r-faq 

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