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

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

20
กำหนดค่าสำหรับเซลล์เฉพาะใน pandas DataFrame โดยใช้ดัชนี
ฉันสร้าง Panda DataFrame แล้ว df = DataFrame(index=['A','B','C'], columns=['x','y']) และได้สิ่งนี้ เซ็กซี่ A NaN NaN B NaN NaN C NaN NaN จากนั้นฉันต้องการกำหนดค่าให้กับเซลล์เฉพาะเช่นแถว 'C' และคอลัมน์ 'x' ฉันคาดว่าจะได้รับผลลัพธ์เช่นนี้: เซ็กซี่ A NaN NaN B NaN NaN C 10 น่าน ด้วยรหัสนี้: df.xs('C')['x'] = 10 แต่เนื้อหาของdfยังไม่ได้เปลี่ยน มันเป็นเพียงNaNใน DataFrame เท่านั้น ข้อเสนอแนะใด ๆ
478 python  pandas  dataframe 

10
ความแตกต่างระหว่างแผนที่, Applymap และวิธีการใช้ใน Pandas
คุณสามารถบอกฉันได้เมื่อใดที่จะใช้วิธีการเวกเตอร์เหล่านี้กับตัวอย่างพื้นฐาน? ฉันเห็นว่าmapเป็นSeriesวิธีการในขณะที่ส่วนที่เหลือเป็นDataFrameวิธีการ ฉันสับสนapplyและapplymapวิธีการต่าง ๆ ทำไมเรามีสองวิธีในการใช้ฟังก์ชั่นกับ DataFrame อีกครั้งตัวอย่างง่ายๆที่แสดงการใช้งานจะยอดเยี่ยม!

15
แปลง dataframe แพนด้าเป็นอาร์เรย์ NumPy
ฉันสนใจที่จะรู้วิธีการแปลงดาต้าดาต้าแพนด้าเป็นอาเรม NumPy dataframe: import numpy as np import pandas as pd index = [1, 2, 3, 4, 5, 6, 7] a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan] c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan] df = pd.DataFrame({'A': …

5
สร้าง Pandas DataFrame ที่ว่างเปล่าแล้วกรอกข้อมูลหรือไม่
ฉันเริ่มต้นจากเอกสาร DataFrame ของแพนด้าที่นี่: http://pandas.pydata.org/pandas-docs/stable/dsintro.html ฉันต้องการเติม DataFrame ด้วยค่าในการคำนวณอนุกรมเวลาซ้ำ ๆ โดยพื้นฐานแล้วฉันต้องการเริ่มต้น DataFrame ด้วยคอลัมน์ A, B และแถวเวลาประทับทั้งหมด 0 หรือ NaN ทั้งหมด ฉันจะเพิ่มค่าเริ่มต้นและดูข้อมูลนี้จากการคำนวณแถวใหม่จากแถวก่อนพูดrow[A][t] = row[A][t-1]+1หรืออย่างนั้น ขณะนี้ฉันกำลังใช้รหัสด้านล่าง แต่ฉันรู้สึกว่ามันน่าเกลียดและต้องมีวิธีการทำเช่นนี้กับ DataFrame โดยตรงหรือเป็นวิธีที่ดีกว่าโดยทั่วไป หมายเหตุ: ฉันใช้ Python 2.7 import datetime as dt import pandas as pd import scipy as s if __name__ == '__main__': base = dt.datetime.today().date() dates = …
461 python  dataframe  pandas 

12
ฉันจะแทนที่ค่า NaN ทั้งหมดด้วย Zeros ในคอลัมน์ของ pandas dataframe ได้อย่างไร
ฉันมีชื่อไฟล์ดังต่อไปนี้ itm Date Amount 67 420 2012-09-30 00:00:00 65211 68 421 2012-09-09 00:00:00 29424 69 421 2012-09-16 00:00:00 29877 70 421 2012-09-23 00:00:00 30990 71 421 2012-09-30 00:00:00 61303 72 485 2012-09-09 00:00:00 71781 73 485 2012-09-16 00:00:00 NaN 74 485 2012-09-23 00:00:00 11072 75 485 2012-09-30 00:00:00 113702 76 …
460 python  pandas  dataframe 

24
วิธีการนับค่า NaN ในคอลัมน์ใน pandas DataFrame
ฉันมีข้อมูลที่ฉันต้องการค้นหาจำนวนNaNเพื่อที่ว่าถ้ามันน้อยกว่าขีด จำกัด บางอย่างฉันจะวางคอลัมน์นี้ ฉันดูแล้ว แต่ไม่พบฟังก์ชันใด ๆ สำหรับสิ่งนี้ มีvalue_countsแต่มันจะช้าสำหรับฉันเพราะค่าส่วนใหญ่แตกต่างกันและฉันต้องการนับNaNเท่านั้น
459 python  pandas  dataframe 

7
วิธีแปลงดัชนีของดาต้าดาต้าแพนด้าให้เป็นคอลัมน์?
ดูเหมือนว่าจะค่อนข้างชัดเจน แต่ฉันไม่สามารถหาวิธีแปลงดัชนีของเฟรมข้อมูลเป็นคอลัมน์ได้ ตัวอย่างเช่น: df= gi ptt_loc 0 384444683 593 1 384444684 594 2 384444686 596 ถึง, df= index1 gi ptt_loc 0 0 384444683 593 1 1 384444684 594 2 2 384444686 596
456 python  pandas  dataframe 

11
เลือกตามสตริงบางส่วนจาก DataFrame แพนด้า
ฉันมีDataFrameคอลัมน์ 4 คอลัมน์โดยที่ 2 มีค่าสตริง ฉันสงสัยว่าจะมีวิธีในการเลือกแถวตามการจับคู่สตริงบางส่วนกับคอลัมน์ใดคอลัมน์หนึ่งหรือไม่? กล่าวอีกนัยหนึ่งฟังก์ชั่นหรือฟังก์ชั่นแลมบ์ดาที่จะทำอะไรเช่น re.search(pattern, cell_in_question) ส่งคืนบูลีน ผมคุ้นเคยกับไวยากรณ์ของแต่ดูเหมือนจะไม่สามารถหาวิธีที่จะทำเช่นเดียวกันกับสตริงการแข่งขันพูดบางส่วนdf[df['A'] == "hello world"]'hello' ใครบางคนจะสามารถชี้ให้ฉันไปในทิศทางที่ถูกต้อง?

9
สลับแถว DataFrame
ฉันมี DataFrame ต่อไปนี้: Col1 Col2 Col3 Type 0 1 2 3 1 1 4 5 6 1 ... 20 7 8 9 2 21 10 11 12 2 ... 45 13 14 15 3 46 16 17 18 3 ... DataFrame อ่านจากไฟล์ csv แถวทั้งหมดที่มีType1 อยู่ด้านบนตามด้วยแถวที่มีType2 ตามด้วยแถวที่มีType3 เป็นต้น ฉันต้องการสลับลำดับแถวของ DataFrame เพื่อให้ทุกอย่างTypeผสมกัน …

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

7
วิธีการกรองดาต้าดาต้าแพนด้าโดยใช้ 'ใน' และ 'ไม่ได้อยู่ใน' เช่นใน SQL
ฉันจะบรรลุผลเทียบเท่าของ SQL INและได้NOT INอย่างไร ฉันมีรายการที่มีค่าที่ต้องการ นี่คือสถานการณ์: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = ['UK','China'] # pseudo-code: df[df['countries'] not in countries] วิธีการทำสิ่งนี้ในปัจจุบันของฉันมีดังนี้: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = pd.DataFrame({'countries':['UK','China'], 'matched':True}) # IN df.merge(countries,how='inner',on='countries') # NOT IN not_in = df.merge(countries,how='left',on='countries') not_in = not_in[pd.isnull(not_in['matched'])] แต่ดูเหมือนว่าจะเป็นกระบองที่น่ากลัว ทุกคนสามารถปรับปรุงได้หรือไม่

18
UnicodeDecodeError เมื่ออ่านไฟล์ CSV ใน Pandas ด้วย Python
ฉันใช้งานโปรแกรมที่กำลังประมวลผลไฟล์ที่คล้ายกัน 30,000 ไฟล์ จำนวนสุ่มจะหยุดและสร้างข้อผิดพลาดนี้ ... File "C:\Importer\src\dfman\importer.py", line 26, in import_chr data = pd.read_csv(filepath, names=fields) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 400, in parser_f return _read(filepath_or_buffer, kwds) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 205, in _read return parser.read() File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 608, in read ret = self._engine.read(nrows) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 1028, in read data = self._reader.read(nrows) …

15
อิมพอร์ตไฟล์ csv หลายไฟล์ไปยัง pandas และต่อเข้ากับ DataFrame เดียว
ฉันต้องการอ่านไฟล์ csv หลายไฟล์จากไดเร็กตอรี่ไปเป็นนุ่นและเชื่อมต่อกันเป็น DataFrame ขนาดใหญ่ ฉันไม่สามารถเข้าใจมันได้ นี่คือสิ่งที่ฉันมีจนถึงตอนนี้: import glob import pandas as pd # get data file names path =r'C:\DRO\DCL_rawdata_files' filenames = glob.glob(path + "/*.csv") dfs = [] for filename in filenames: dfs.append(pd.read_csv(filename)) # Concatenate all data into one DataFrame big_frame = pd.concat(dfs, ignore_index=True) ฉันเดาว่าฉันต้องการความช่วยเหลือในการวนรอบ ???

16
การเปลี่ยนชื่อคอลัมน์ของ data frame
ฉันมี data frame ชื่อ "newprice" (ดูด้านล่าง) และฉันต้องการเปลี่ยนชื่อคอลัมน์ในโปรแกรมของฉันใน R > newprice Chang. Chang. Chang. 1 100 36 136 2 120 -33 87 3 150 14 164 ในความเป็นจริงนี่คือสิ่งที่กำลังทำ: names(newprice)[1]<-paste("premium") names(newprice)[2]<-paste("change") names(newprice)[3]<-paste("newprice") ฉันไม่ได้ใส่สิ่งนี้ไว้ในลูปเพราะฉันต้องการให้แต่ละชื่อคอลัมน์แตกต่างกันอย่างที่คุณเห็น เมื่อฉันวางโปรแกรมลงในคอนโซล R นี่คือผลลัพธ์มันให้ฉัน: > names(newprice)[1]<-paste(“premium”) Error: unexpected input in "names(newprice)[1]<-paste(“" > names(newprice)[2]<-paste(“change”) Error: unexpected input in "names(newprice)[2]<-paste(“" > names(newprice)[3]<-paste(“newpremium”) Error: …
399 r  dataframe  rename 

6
การเลือกแถวของชุดข้อมูล / ดาต้าฟอร์มโดยดัชนีจำนวนเต็ม
ฉันอยากรู้ว่าทำไม df[2]ไม่ได้รับการสนับสนุนในขณะที่df.ix[2]และdf[2:3]ทั้งสองทำงาน In [26]: df.ix[2] Out[26]: A 1.027680 B 1.514210 C -1.466963 D -0.162339 Name: 2000-01-03 00:00:00 In [27]: df[2:3] Out[27]: A B C D 2000-01-03 1.02768 1.51421 -1.466963 -0.162339 ฉันคาดว่าdf[2]จะทำงานแบบเดียวกับdf[2:3]ที่สอดคล้องกับข้อตกลงการจัดทำดัชนีของ Python มีเหตุผลในการออกแบบที่ไม่สนับสนุนการทำดัชนีแถวด้วยจำนวนเต็มเดียวหรือไม่?

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