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

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

11
วางคอลัมน์ที่มีชื่อประกอบด้วยสตริงเฉพาะจากแพนด้า DataFrame
ฉันมีดาต้าเฟรมแพนด้าที่มีชื่อคอลัมน์ต่อไปนี้: Result1, Test1, Result2, Test2, Result3, Test3 ฯลฯ ... ฉันต้องการปล่อยคอลัมน์ทั้งหมดที่มีชื่อคำว่า "Test" ตัวเลขของคอลัมน์ดังกล่าวไม่คงที่ แต่ขึ้นอยู่กับฟังก์ชันก่อนหน้า ฉันจะทำเช่นนั้นได้อย่างไร?
112 python  pandas  dataframe 

11
การต่อท้ายรายการหรือซีรีส์ใน DataFrame แพนด้าเป็นแถว?
ดังนั้นฉันจึงเริ่มต้น DataFrame แพนด้าที่ว่างเปล่าและฉันต้องการเพิ่มรายการ (หรือซีรี่ส์) ซ้ำเป็นแถวใน DataFrame นี้ วิธีที่ดีที่สุดในการทำคืออะไร?

7
Python pandas แทรกรายการลงในเซลล์
ฉันมีรายการ 'abc' และ dataframe 'df': abc = ['foo', 'bar'] df = A B 0 12 NaN 1 23 NaN ฉันต้องการแทรกรายการลงในเซลล์ 1B ดังนั้นฉันต้องการผลลัพธ์นี้: A B 0 12 NaN 1 23 ['foo', 'bar'] โฮฉันจะทำอย่างนั้นได้ไหม? 1) ถ้าฉันใช้สิ่งนี้: df.ix[1,'B'] = abc ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: ValueError: Must have equal len keys and value when setting with an …

8
เปรียบเทียบสองคอลัมน์โดยใช้แพนด้า
โดยใช้สิ่งนี้เป็นจุดเริ่มต้น: a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']] df = pd.DataFrame(a, columns=['one', 'two', 'three']) Out[8]: one two three 0 10 1.2 4.2 1 15 70 0.03 2 8 5 0 ฉันต้องการใช้ifคำสั่งในแพนด้า if df['one'] >= df['two'] and df['one'] <= df['three']: df['que'] = df['one'] โดยทั่วไปตรวจสอบแต่ละแถวผ่านifคำสั่งสร้างคอลัมน์ใหม่ เอกสารบอกใช้.allแต่ไม่มีตัวอย่าง ...


5
แยกค่าคอลัมน์ตามดาต้าเฟรมแพนด้าของคอลัมน์อื่น
ฉันติดอยู่กับการแยกค่าของการปรับสภาพตัวแปรหนึ่งในตัวแปรอื่น ตัวอย่างเช่น dataframe ต่อไปนี้: A B p1 1 p1 2 p3 3 p2 4 ฉันจะได้รับมูลค่าAเมื่อไหร่B=3? ทุกครั้งที่ฉันแยกค่าของAฉันได้วัตถุไม่ใช่สตริง
109 python  pandas  dataframe 

5
จะแทนที่ข้อความในคอลัมน์ของ Pandas dataframe ได้อย่างไร?
ฉันมีคอลัมน์ในดาต้าเฟรมของฉันดังนี้: range "(2,30)" "(50,290)" "(400,1000)" ... และฉันต้องการแทนที่,เครื่องหมายจุลภาคด้วย-เส้นประ ฉันกำลังใช้วิธีนี้ แต่ไม่มีอะไรเปลี่ยนแปลง org_info_exc['range'].replace(',', '-', inplace=True) ใครสามารถช่วย?

6
แสดงคอลัมน์ dataframe ทั้งหมดใน Jupyter Python Notebook
ฉันต้องการแสดงคอลัมน์ทั้งหมดในดาต้าเฟรมใน Jupyter Notebook Jupyter แสดงคอลัมน์บางคอลัมน์และเพิ่มจุดในคอลัมน์สุดท้ายดังภาพต่อไปนี้: ฉันจะแสดงคอลัมน์ทั้งหมดได้อย่างไร

8
การสร้าง R dataframe ทีละแถว
ฉันต้องการสร้างดาต้าเฟรมทีละแถวใน R ฉันได้ทำการค้นหาแล้วและสิ่งที่ฉันคิดขึ้นมาคือคำแนะนำในการสร้างรายการว่างเก็บสเกลาร์ดัชนีรายการจากนั้นทุกครั้งที่เพิ่มลงในรายการ ดาต้าเฟรมแถวเดียวและเลื่อนดัชนีรายการทีละรายการ สุดท้ายdo.call(rbind,)ในรายการ ในขณะที่ใช้งานได้ดูเหมือนจะยุ่งยากมาก ไม่มีวิธีที่ง่ายกว่าในการบรรลุเป้าหมายเดียวกันหรือไม่? เห็นได้ชัดว่าฉันอ้างถึงกรณีที่ฉันไม่สามารถใช้applyฟังก์ชันบางอย่างได้และจำเป็นต้องสร้างแถวดาต้าเฟรมทีละแถวอย่างชัดเจน อย่างน้อยก็มีวิธีที่จะpushเข้าสู่จุดสิ้นสุดของรายการแทนที่จะติดตามดัชนีล่าสุดที่ใช้อย่างชัดเจนหรือไม่?
108 list  r  dataframe 

5
การแปลงคอลัมน์ภายในดาต้าเฟรมแพนด้าจาก int เป็นสตริง
ฉันมีดาต้าเฟรมในแพนด้าที่มีคอลัมน์ข้อมูล int และ str ผสมกัน ฉันต้องการต่อคอลัมน์ภายในดาต้าเฟรมก่อน ในการทำเช่นนั้นฉันต้องแปลงintคอลัมน์เป็นstr. ฉันได้พยายามทำดังนี้: mtrx['X.3'] = mtrx.to_string(columns = ['X.3']) หรือ mtrx['X.3'] = mtrx['X.3'].astype(str) แต่ในทั้งสองกรณีมันใช้งานไม่ได้และฉันได้รับข้อผิดพลาดว่า "ไม่สามารถเชื่อมต่อวัตถุ 'str' และ 'int' ได้ การเชื่อมสองstrคอลัมน์เข้าด้วยกันทำงานได้ดีอย่างสมบูรณ์
108 python  string  pandas  dataframe  int 

6
การสร้างกรอบข้อมูลแพนด้าที่เติมเป็นศูนย์
อะไรคือวิธีที่ดีที่สุดในการสร้างกรอบข้อมูลแพนด้าที่ไม่มีค่าเป็นศูนย์ในขนาดที่กำหนด ฉันได้ใช้: zero_data = np.zeros(shape=(len(data),len(feature_list))) d = pd.DataFrame(zero_data, columns=feature_list) มีวิธีที่ดีกว่านี้ไหม
108 python  pandas  dataframe 

4
dtype ('O') ในหมีแพนด้าคืออะไร?
ฉันมีดาต้าเฟรมเป็นหมีแพนด้าและฉันกำลังพยายามหาว่าค่าของมันคืออะไร ฉันไม่แน่ใจว่าประเภทของคอลัมน์'Test'คืออะไร อย่างไรก็ตามเมื่อฉันวิ่งmyFrame['Test'].dtypeฉันได้รับ; dtype('O') สิ่งนี้หมายความว่า?

4
เปลี่ยนกรอบข้อมูล
ฉันต้องการเปลี่ยนกรอบข้อมูลขนาดใหญ่ดังนั้นฉันจึงใช้: df.aree <- t(df.aree) df.aree <- as.data.frame(df.aree) นี่คือสิ่งที่ฉันได้รับ: df.aree[c(1:5),c(1:5)] 10428 10760 12148 11865 name M231T3 M961T5 M960T6 M231T19 GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04 GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04 GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04 GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04 ปัญหาของฉันคือชื่อคอลัมน์ใหม่ (10428, 10760, 12148, 11865) ที่ฉันต้องกำจัดเพราะฉันต้องใช้แถวแรกเป็นชื่อคอลัมน์ ฉันลองใช้col.names()ฟังก์ชันแล้วแต่ไม่ได้รับสิ่งที่ต้องการ คุณมีข้อเสนอแนะหรือไม่? แก้ไข ขอบคุณสำหรับคำแนะนำ !!! ใช้มันฉันได้รับ: …
107 r  dataframe 

1
วิธีอ่านสองสามบรรทัดแรกสำหรับแพนด้าดาต้าเฟรม
มีวิธีในตัวในการใช้read_csvเพื่ออ่านเฉพาะnบรรทัดแรกของไฟล์โดยไม่ทราบความยาวของบรรทัดก่อนเวลาหรือไม่? ฉันมีไฟล์ขนาดใหญ่ที่ใช้เวลาอ่านนานและบางครั้งก็ต้องการใช้ครั้งแรกพูดว่า 20 บรรทัดเพื่อรับตัวอย่างไฟล์ (และไม่ต้องการโหลดไฟล์แบบเต็มและใช้หัวของมัน) ถ้าฉันรู้จำนวนบรรทัดทั้งหมดฉันสามารถทำบางอย่างเช่นfooter_lines = total_lines - nและส่งต่อไปยังskipfooterคีย์เวิร์ด arg วิธีแก้ปัญหาปัจจุบันของฉันคือจับnบรรทัดแรกด้วยตนเองด้วย python และ StringIO เพื่อแพนด้า: import pandas as pd from StringIO import StringIO n = 20 with open('big_file.csv', 'r') as f: head = ''.join(f.readlines(n)) df = pd.read_csv(StringIO(head)) มันไม่ได้แย่ขนาดนั้น แต่มีวิธี 'แพนด้า' (?) ที่กระชับกว่านี้ในการใช้คีย์เวิร์ดหรืออะไร?
107 python  pandas  csv  dataframe 

8
รวมคอลัมน์สองคอลัมน์ขึ้นไปใน dataframe เป็นคอลัมน์ใหม่โดยใช้ชื่อใหม่
ตัวอย่างเช่นถ้าฉันมีสิ่งนี้: n = c(2, 3, 5) s = c("aa", "bb", "cc") b = c(TRUE, FALSE, TRUE) df = data.frame(n, s, b) n s b 1 2 aa TRUE 2 3 bb FALSE 3 5 cc TRUE แล้วฉันจะรวมทั้งสองคอลัมน์nและsในคอลัมน์ใหม่ชื่อxดังกล่าวว่ามีลักษณะเช่นนี้ n s b x 1 2 aa TRUE 2 aa 2 3 bb …

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