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

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

6
แพนด้า: ฉันจะแยกข้อความในคอลัมน์ออกเป็นหลายแถวได้อย่างไร
ฉันกำลังทำงานกับไฟล์ csv ขนาดใหญ่และถัดจากคอลัมน์สุดท้ายมีสตริงข้อความที่ฉันต้องการแยกด้วยตัวคั่นเฉพาะ ฉันสงสัยว่ามีวิธีง่ายๆในการทำเช่นนี้โดยใช้แพนด้าหรืองูหลามหรือไม่? CustNum CustomerName ItemQty Item Seatblocks ItemExt 32363 McCartney, Paul 3 F04 2:218:10:4,6 60 31316 Lennon, John 25 F01 1:13:36:1,12 1:13:37:1,13 300 ฉันต้องการแบ่งตามช่องว่าง(' ')และเครื่องหมายทวิภาค(':')ในSeatblocksคอลัมน์ แต่แต่ละเซลล์จะทำให้จำนวนคอลัมน์ต่างกัน ฉันมีฟังก์ชั่นจัดเรียงคอลัมน์ใหม่ให้Seatblocksคอลัมน์อยู่ท้ายแผ่นงาน แต่ฉันไม่แน่ใจว่าต้องทำอะไรจากตรงนั้น ฉันสามารถทำได้ใน excel ด้วยtext-to-columnsฟังก์ชันในตัวและมาโครด่วน แต่ชุดข้อมูลของฉันมีระเบียนมากเกินไปสำหรับ excel ที่จะจัดการ ในที่สุดฉันต้องการบันทึกเช่นของ John Lennon และสร้างหลายบรรทัดโดยมีข้อมูลจากชุดที่นั่งแต่ละชุดแยกกัน
137 python  pandas  dataframe 

4
วิธีใดที่มีประสิทธิภาพที่สุดในการสร้างพจนานุกรมของ Dataframe แพนด้าสองคอลัมน์
วิธีใดที่มีประสิทธิภาพที่สุดในการจัดระเบียบ Dataframe แพนด้าต่อไปนี้: ข้อมูล = Position Letter 1 a 2 b 3 c 4 d 5 e ลงในพจนานุกรมเช่นalphabet[1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd', 5 : 'e']?

8
แพนด้าค่าที่ไม่ซ้ำกันหลายคอลัมน์
df = pd.DataFrame({'Col1': ['Bob', 'Joe', 'Bill', 'Mary', 'Joe'], 'Col2': ['Joe', 'Steve', 'Bob', 'Bob', 'Steve'], 'Col3': np.random.random(5)}) วิธีใดที่ดีที่สุดในการคืนค่าเฉพาะของ 'Col1' และ 'Col2' ผลลัพธ์ที่ต้องการคือ 'Bob', 'Joe', 'Bill', 'Mary', 'Steve'

4
Python pandas: เติมดาต้าเฟรมทีละแถว
งานง่ายๆในการเพิ่มแถวให้กับpandas.DataFrameวัตถุดูเหมือนจะทำได้ยาก มีคำถามเกี่ยวกับ stackoverflow 3 คำถามซึ่งไม่มีคำถามใดให้คำตอบที่ใช้ได้ นี่คือสิ่งที่ฉันพยายามทำ ฉันมี DataFrame ซึ่งฉันรู้จักรูปร่างตลอดจนชื่อของแถวและคอลัมน์แล้ว >>> df = pandas.DataFrame(columns=['a','b','c','d'], index=['x','y','z']) >>> df a b c d x NaN NaN NaN NaN y NaN NaN NaN NaN z NaN NaN NaN NaN ตอนนี้ฉันมีฟังก์ชั่นในการคำนวณค่าของแถวซ้ำ ๆ ฉันจะกรอกหนึ่งในแถวด้วยพจนานุกรมหรือ a pandas.Series? ความพยายามต่างๆที่ล้มเหลวมีดังนี้ >>> y = {'a':1, 'b':5, 'c':2, 'd':3} >>> df['y'] …
133 python  dataframe  row  pandas 

5
Pandas DataFrame: แทนที่ค่าทั้งหมดในคอลัมน์ตามเงื่อนไข
ฉันมี DataFrame ง่ายๆดังต่อไปนี้: ฉันต้องการเลือกค่าทั้งหมดจากคอลัมน์ 'ซีซั่นแรก' และแทนที่ค่าที่มากกว่า 1990 ด้วย 1 ในตัวอย่างนี้มีเพียงบัลติมอร์เรเวนเท่านั้นที่จะแทนที่ปี 1996 ด้วย 1 (ทำให้ข้อมูลที่เหลือยังคงอยู่) ฉันได้ใช้สิ่งต่อไปนี้: df.loc[(df['First Season'] > 1990)] = 1 แต่จะแทนที่ค่าทั้งหมดในแถวนั้นด้วย 1 ไม่ใช่แค่ค่าในคอลัมน์ "ซีซันแรก" ฉันจะแทนที่เฉพาะค่าจากคอลัมน์นั้นได้อย่างไร
132 python  pandas  dataframe 

2
กำหนดหลายคอลัมน์โดยใช้: = ใน data.table ตามกลุ่ม
วิธีที่ดีที่สุดในการกำหนดให้หลายคอลัมน์โดยใช้data.tableคืออะไร? ตัวอย่างเช่น: f <- function(x) {c("hi", "hello")} x <- data.table(id = 1:10) ฉันต้องการทำสิ่งนี้ (แน่นอนว่าไวยากรณ์นี้ไม่ถูกต้อง): x[ , (col1, col2) := f(), by = "id"] และเพื่อขยายนั้นฉันอาจมีหลายคอลัมน์ที่มีชื่อเก็บไว้ในตัวแปร (พูดcol_names) และฉันต้องการทำ: x[ , col_names := another_f(), by = "id", with = FALSE] อะไรคือวิธีที่ถูกต้องในการทำสิ่งนี้?

3
การรวมคอลัมน์เดียวกันหลายรายการโดยใช้ pandas GroupBy.agg ()
มีแพนด้าในตัวเพื่อใช้ฟังก์ชันการรวมที่แตกต่างกันสองฟังก์ชันf1, f2กับคอลัมน์เดียวกันdf["returns"]โดยไม่ต้องเรียกagg()หลายครั้งหรือไม่? ตัวอย่างดาต้าเฟรม: import pandas as pd import datetime as dt pd.np.random.seed(0) df = pd.DataFrame({ "date" : [dt.date(2012, x, 1) for x in range(1, 11)], "returns" : 0.05 * np.random.randn(10), "dummy" : np.repeat(1, 10) }) ผิดทางวากยสัมพันธ์ แต่ถูกต้องโดยสังหรณ์ใจวิธีที่จะทำคือ: # Assume `f1` and `f2` are defined for aggregating. df.groupby("dummy").agg({"returns": f1, "returns": f2}) …

8
ละเว้นแถวที่มีคอลัมน์เฉพาะของ NA
ฉันต้องการทราบวิธีละเว้นNAค่าในกรอบข้อมูล แต่เฉพาะในบางคอลัมน์ที่ฉันสนใจ ตัวอย่างเช่น, DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22)) แต่ฉันต้องการละเว้นข้อมูลที่yเป็นNAดังนั้นผลลัพธ์ควร x y z 1 1 0 NA 2 2 10 33 na.omitNAดูเหมือนลบแถวทั้งหมดมีการใด ๆ ใครช่วยฉันออกจากคำถามง่าย ๆ นี้ได้ไหม แต่ถ้าตอนนี้ฉันเปลี่ยนคำถามเช่น: DF <- data.frame(x = c(1, 2, 3,NA), y = c(1,0, 10, NA), z=c(43,NA, 33, …
129 r  dataframe  na 

9
ฉันจะเพิ่มคอลัมน์ใหม่ใน Spark DataFrame (โดยใช้ PySpark) ได้อย่างไร
ฉันมี Spark DataFrame (ใช้ PySpark 1.5.1) และต้องการเพิ่มคอลัมน์ใหม่ ฉันได้ลองทำสิ่งต่อไปนี้แล้ว แต่ไม่ประสบความสำเร็จ: type(randomed_hours) # => list # Create in Python and transform to RDD new_col = pd.DataFrame(randomed_hours, columns=['new_col']) spark_new_col = sqlContext.createDataFrame(new_col) my_df_spark.withColumn("hours", spark_new_col["new_col"]) ยังได้รับข้อผิดพลาดในการใช้สิ่งนี้: my_df_spark.withColumn("hours", sc.parallelize(randomed_hours)) ดังนั้นฉันจะเพิ่มคอลัมน์ใหม่ (ตาม Python vector) ไปยัง DataFrame ที่มีอยู่ด้วย PySpark ได้อย่างไร

4
เชื่อมต่อรายการดาต้าเฟรมของแพนด้าเข้าด้วยกัน
ฉันมีรายการดาต้าเฟรมของ Pandas ที่อยากจะรวมไว้ในดาต้าเฟรมของ Pandas ฉันใช้ Python 2.7.10 และ Pandas 0.16.2 ฉันสร้างรายการดาต้าเฟรมจาก: import pandas as pd dfs = [] sqlall = "select * from mytable" for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000): dfs.append(chunk) สิ่งนี้ส่งคืนรายการของดาต้าเฟรม type(dfs[0]) Out[6]: pandas.core.frame.DataFrame type(dfs) Out[7]: list len(dfs) Out[8]: 408 นี่คือข้อมูลตัวอย่างบางส่วน # sample dataframes d1 = pd.DataFrame({'one' : …

9
ลบส่วนที่ไม่ต้องการออกจากสตริงในคอลัมน์
ฉันกำลังมองหาวิธีที่มีประสิทธิภาพในการลบส่วนที่ไม่ต้องการออกจากสตริงในคอลัมน์ DataFrame ข้อมูลดูเหมือนว่า: time result 1 09:00 +52A 2 10:00 +62B 3 11:00 +44a 4 12:00 +30b 5 13:00 -110a ฉันต้องการตัดข้อมูลเหล่านี้เพื่อ: time result 1 09:00 52 2 10:00 62 3 11:00 44 4 12:00 30 5 13:00 110 ฉันพยายาม.str.lstrip('+-')และ. str.rstrip('aAbBcC')แต่มีข้อผิดพลาด: TypeError: wrapper() takes exactly 1 argument (2 given) คำแนะนำใด ๆ …

5
R - เชื่อมต่อสองดาต้าเฟรม?
กำหนดสองดาต้าเฟรมaและb: > a a b c 1 -0.2246894 -1.48167912 -1.65099363 2 0.5559320 -0.87898575 -0.15634590 3 1.8469466 -0.01487524 -0.53098215 4 -0.6875051 0.23880967 0.01824621 5 -0.6735163 0.75485292 0.44154092 > b a c 1 0.4287284 -0.3295925 2 0.5201492 0.3341251 3 -2.6355570 1.7916780 4 -1.3645337 1.3642276 5 -0.4954542 -0.6660001 มีวิธีง่ายๆในการเชื่อมต่อสิ่งเหล่านี้เพื่อส่งคืน data frame ใหม่ของแบบฟอร์มด้านล่างหรือไม่? > …

10
จะเพิ่มแถวใน data frame ใน R ได้อย่างไร?
ใน R คุณจะเพิ่มแถวใหม่ใน data frame ได้อย่างไรเมื่อเริ่มต้น data frame แล้ว จนถึงตอนนี้ฉันมีสิ่งนี้: df <- data.frame("hi", "bye") names(df) <- c("hello", "goodbye") #I am trying to add "hola" and "ciao" as a new row de <- data.frame("hola", "ciao") merge(df, de) # Adds to the same row as new columns # Unfortunately, I couldn't find …
129 r  dataframe 

5
จะกำหนดการแบ่งพาร์ติชันของ DataFrame ได้อย่างไร?
ฉันเริ่มใช้ Spark SQL และ DataFrames ใน Spark 1.4.0 ฉันต้องการกำหนดพาร์ติชันเนอร์ที่กำหนดเองบน DataFrames ใน Scala แต่ไม่เห็นวิธีการทำเช่นนี้ หนึ่งในตารางข้อมูลที่ฉันกำลังใช้งานประกอบด้วยรายการธุรกรรมตามบัญชีซิลิมาร์ดังตัวอย่างต่อไปนี้ Account Date Type Amount 1001 2014-04-01 Purchase 100.00 1001 2014-04-01 Purchase 50.00 1001 2014-04-05 Purchase 70.00 1001 2014-04-01 Payment -150.00 1002 2014-04-01 Purchase 80.00 1002 2014-04-02 Purchase 22.00 1002 2014-04-04 Payment -120.00 1002 2014-04-04 Purchase 60.00 …

5
เพิ่มวันที่ที่ขาดหายไปในกรอบข้อมูลแพนด้า
ข้อมูลของฉันอาจมีหลายเหตุการณ์ในวันที่กำหนดหรือไม่มีเหตุการณ์ในวันที่ ฉันใช้เหตุการณ์เหล่านี้นับตามวันที่และวางแผนไว้ อย่างไรก็ตามเมื่อฉันวางโครงเรื่องทั้งสองซีรีส์ของฉันไม่ตรงกันเสมอไป idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max()) s = df.groupby(['simpleDate']).size() ในโค้ดด้านบนidxจะกลายเป็นช่วงของ say 30 วัน 09-01-2013 ถึง 09-30-2013 อย่างไรก็ตามSอาจมีเวลาเพียง 25 หรือ 26 วันเนื่องจากไม่มีเหตุการณ์ใด ๆ เกิดขึ้นในวันที่กำหนด จากนั้นฉันจะได้รับ AssertionError เนื่องจากขนาดไม่ตรงกันเมื่อฉันพยายามพล็อต: fig, ax = plt.subplots() ax.bar(idx.to_pydatetime(), s, color='green') อะไรคือวิธีที่เหมาะสมในการจัดการกับปัญหานี้? ฉันต้องการลบวันที่ที่ไม่มีค่าออกจากIDXหรือ (ซึ่งฉันอยากจะทำ) คือเพิ่มวันที่ที่ขาดหายไปในชุดด้วยจำนวน 0 ฉันอยากจะมีกราฟเต็ม 30 วันที่มีค่า 0 หากแนวทางนี้ถูกต้องมีข้อเสนอแนะในการเริ่มต้นอย่างไร ฉันต้องการreindexฟังก์ชันไดนามิกบางประเภทหรือไม่? นี่คือตัวอย่างS ( df.groupby(['simpleDate']).size() ) โปรดสังเกตว่าไม่มีรายการสำหรับ …
129 python  date  plot  pandas  dataframe 

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