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

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

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
แปลงแถวของกรอบข้อมูลเป็นเวกเตอร์
ฉันต้องการสร้างเวกเตอร์จากแถวของกรอบข้อมูล แต่ฉันไม่ต้องการที่จะต้องมีชื่อแถวและคอลัมน์ ฉันลองหลายอย่าง ... แต่ไม่มีโชค นี่คือกรอบข้อมูลของฉัน: > df <- data.frame(a=c(1,2,4,2),b=c(2,6,2,1),c=c(2.6,8.2,7.5,3)) > df a b c 1 1 2 2.6 2 2 6 8.2 3 4 2 7.5 4 2 1 3.0 ฉันเหนื่อย: > newV <- as.vector(df[1,]) > newV a b c 1 1 2 2.6 แต่ฉันต้องการบางอย่างที่มีลักษณะเช่นนี้: > newV <- c( …
116 r  vector  dataframe 

7
การเพิ่มคอลัมน์ใน data.frame
ฉันมี data.frame ด้านล่าง ฉันต้องการเพิ่มคอลัมน์ที่จำแนกข้อมูลของฉันตามคอลัมน์ 1 ( h_no) ในลักษณะที่ชุดแรกของ h_no 1,2,3,4 คือคลาส 1 ชุดที่สองของh_no(1 ถึง 7) คือคลาส 2 เป็นต้น ดังที่ระบุไว้ในคอลัมน์สุดท้าย h_no h_freq h_freqsq 1 0.09091 0.008264628 1 2 0.00000 0.000000000 1 3 0.04545 0.002065702 1 4 0.00000 0.000000000 1 1 0.13636 0.018594050 2 2 0.00000 0.000000000 2 3 0.00000 0.000000000 2 …
115 r  dataframe 

9
พริตตี้การพิมพ์ดาต้าเฟรมแพนด้า
ฉันจะพิมพ์ดาต้าเฟรมแพนด้าเป็นตารางข้อความที่ดีดังต่อไปนี้ได้อย่างไร +------------+---------+-------------+ | column_one | col_two | column_3 | +------------+---------+-------------+ | 0 | 0.0001 | ABCD | | 1 | 1e-005 | ABCD | | 2 | 1e-006 | long string | | 3 | 1e-007 | ABCD | +------------+---------+-------------+

6
จะอ่านไฟล์. xlsx โดยใช้ pandas Library ใน iPython ได้อย่างไร
ฉันต้องการอ่านไฟล์. xlsx โดยใช้ Pandas Library of python และพอร์ตข้อมูลไปยังตาราง postgreSQL สิ่งที่ฉันทำได้จนถึงตอนนี้คือ: import pandas as pd data = pd.ExcelFile("*File Name*") ตอนนี้ฉันรู้แล้วว่าขั้นตอนได้ดำเนินการสำเร็จแล้ว แต่ฉันอยากรู้ว่าฉันจะแยกวิเคราะห์ไฟล์ excel ที่อ่านแล้วได้อย่างไรเพื่อที่ฉันจะได้เข้าใจว่าข้อมูลใน excel แมปกับข้อมูลในข้อมูลตัวแปรได้อย่างไร ฉันเรียนรู้ว่าข้อมูลเป็นวัตถุ Dataframe ถ้าฉันไม่ผิด ดังนั้นฉันจะแยกวิเคราะห์วัตถุดาต้าเฟรมนี้เพื่อแยกแต่ละบรรทัดทีละแถวได้อย่างไร

6
ทำแผนที่ความร้อนจาก DataFrame แพนด้า
ฉันมีดาต้าเฟรมที่สร้างจากแพ็คเกจ Pandas ของ Python ฉันจะสร้างแผนที่ความร้อนโดยใช้ DataFrame จากแพ็คเกจแพนด้าได้อย่างไร import numpy as np from pandas import * Index= ['aaa','bbb','ccc','ddd','eee'] Cols = ['A', 'B', 'C','D'] df = DataFrame(abs(np.random.randn(5, 4)), index= Index, columns=Cols) >>> df A B C D aaa 2.431645 1.248688 0.267648 0.613826 bbb 0.809296 1.671020 1.564420 0.347662 ccc 1.501939 1.126518 0.702019 1.596048 …

4
แปลงเวลายูนิกซ์เป็นวันที่ที่อ่านได้ในดาต้าเฟรมของแพนด้า
ฉันมีดาต้าเฟรมที่มีเวลายูนิกซ์และราคาอยู่ในนั้น ฉันต้องการแปลงคอลัมน์ดัชนีเพื่อให้แสดงเป็นวันที่ที่มนุษย์อ่านได้ ดังนั้นสำหรับตัวอย่างเช่นผมมีdateเป็น1349633705ในคอลัมน์ดัชนี แต่ฉันต้องการให้แสดงเป็น10/07/2012(หรืออย่างน้อย10/07/2012 18:15) สำหรับบริบทบางอย่างนี่คือรหัสที่ฉันใช้งานและสิ่งที่ฉันได้ลองแล้ว: import json import urllib2 from datetime import datetime response = urllib2.urlopen('http://blockchain.info/charts/market-price?&format=json') data = json.load(response) df = DataFrame(data['values']) df.columns = ["date","price"] #convert dates df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d")) df.index = df.date อย่างที่คุณเห็นฉันใช้ df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d"))ที่นี่ซึ่งใช้ไม่ได้เนื่องจากฉันทำงานกับจำนวนเต็มไม่ใช่สตริง ฉันคิดว่าฉันต้องใช้datetime.date.fromtimestampแต่ฉันไม่ค่อยแน่ใจว่าจะใช้สิ่งนี้กับทั้งหมดdf.dateได้อย่างไร ขอบคุณ.

9
ส่งคืนหลายคอลัมน์จากการใช้แพนด้า ()
ฉันมี DataFrame แพนด้า, df_test. ประกอบด้วยคอลัมน์ 'ขนาด' ซึ่งแสดงขนาดเป็นไบต์ ฉันคำนวณ KB, MB และ GB โดยใช้รหัสต่อไปนี้: df_test = pd.DataFrame([ {'dir': '/Users/uname1', 'size': 994933}, {'dir': '/Users/uname2', 'size': 109338711}, ]) df_test['size_kb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0, grouping=True) + ' KB') df_test['size_mb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 2, grouping=True) + ' …

8
แพนด้า: วิธีที่ดีที่สุดในการเลือกคอลัมน์ทั้งหมดที่มีชื่อขึ้นต้นด้วย X
ฉันมี DataFrame: import pandas as pd import numpy as np df = pd.DataFrame({'foo.aa': [1, 2.1, np.nan, 4.7, 5.6, 6.8], 'foo.fighters': [0, 1, np.nan, 0, 0, 0], 'foo.bars': [0, 0, 0, 0, 0, 1], 'bar.baz': [5, 5, 6, 5, 5.6, 6.8], 'foo.fox': [2, 4, 1, 0, 0, 5], 'nas.foo': ['NA', 0, …


5
แปลงแถวเป็นส่วนหัวของคอลัมน์สำหรับ Pandas DataFrame
ข้อมูลที่ฉันต้องจัดการมันค่อนข้างยุ่ง .. มันมีชื่อส่วนหัวอยู่ในข้อมูล ฉันจะเลือกแถวจากดาต้าเฟรมของแพนด้าที่มีอยู่แล้วทำให้ (เปลี่ยนชื่อเป็น) เป็นส่วนหัวคอลัมน์ได้อย่างไร ฉันต้องการทำสิ่งที่ชอบ: header = df[df['old_header_name1'] == 'new_header_name1'] df.columns = header

5
รับคอลัมน์ Pandas ทั้งหมด
เป้าหมาย MyColumnฉันมีกรอบข้อมูลนุ่นที่แสดงด้านล่างมีหลายคอลัมน์และต้องการที่จะได้รับรวมของคอลัมน์ กรอบข้อมูล -df: print df X MyColumn Y Z 0 A 84 13.0 69.0 1 B 76 77.0 127.0 2 C 28 69.0 16.0 3 D 28 28.0 31.0 4 E 19 20.0 85.0 5 F 84 193.0 70.0 ความพยายามของฉัน : ฉันได้พยายามหาผลรวมของคอลัมน์โดยใช้groupbyและ.sum(): Total = df.groupby['MyColumn'].sum() print Total สิ่งนี้ทำให้เกิดข้อผิดพลาดต่อไปนี้: TypeError: …
112 python  pandas  dataframe  sum 

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