แยก dataframe ไปเล็กลง dataframe โดยคอลัมน์รายชื่อ

0

คำถาม

ดังนั้นฉันกำลังทำครั้งต่อเนื่อ/LSTM งานและฉันมีหุ้นของวันที่: https://www.kaggle.com/camnugent/sandp500

เรื่องก็คือผมต้องการเพื่อแบ่งหลัก dataframe ไปเล็กลง dataframes ยที่ชื่อของแต่ละบริษัท มีเร็วทางทำอย่างนี้เหรอ? เพราะว่านั้นเป็นสิบๆของบริษัทชื่อฉันได้เห็นว่าเรื่องนี้จะจบเรื่องกับ iloc แต่ความพยายามมากเกินไป

df = pd.read_csv('all_stocks_5yr.csv', parse_dates=['date'])
df['date'] = pd.to_datetime(df['date'])

grouped_df = df.groupby('Name')

นี่มันจะได้เห็นดีขึ้น:

enter image description here

อย่างที่คุณเห็นนั้นแตกต่างกับบริษัทต่างออกรายชื่อสิ่งที่ฉันต้องการคือ dataframe สำหรับแต่ละบริษัท ความช่วยเหลือขอบคุณมากครั

dataframe keras lstm pandas
2021-11-23 15:16:49
2

คำตอบที่ดีที่สุด

1

ถือว่านี่เป็นของคุณ dataframe:

 Name  price
0   aal      1
1   aal      2
2   aal      3
3   aal      4
4   aal      5
5   aal      6
6   bll      7
7   bll      8
8   bll      9
9   bll      8
10  dll      7
11  dll     56
12  dll      4
13  dll      3
14  dll      3
15  dll      5

งั้นก็ทำต่อไปนี้:

for Name, df in df.groupby('Name'):
    df.to_csv("Price_{}".format(Name)+".csv", sep=";")

มันจะช่วยทุกรายการย่อยขอ dataframes เป็นแฟ้ม csv. ต้องมุมมองอะไรรหัสยัง:

for Name, df in df.groupby('Name'):
    print(df)

จะได้ค่า:

Name  price
0  aal      1
1  aal      2
2  aal      3
3  aal      4
4  aal      5
5  aal      6
  Name  price
6  bll      7
7  bll      8
8  bll      9
9  bll      8
   Name  price
10  dll      7
11  dll     56
12  dll      4
13  dll      3
14  dll      3
15  dll      5

ถ้าคุณต้องการจะปรับค่าระดัชนีในทุก df,ทำอย่างนี้:

for Name, df in df.groupby('Name'):
    gf = df.reset_index()
    print(gf)

ซึ่งทำให้:

index Name  price
0      0  aal      1
1      1  aal      2
2      2  aal      3
3      3  aal      4
4      4  aal      5
5      5  aal      6
   index Name  price
0      6  bll      7
1      7  bll      8
2      8  bll      9
3      9  bll      8
   index Name  price
0     10  dll      7
1     11  dll     56
2     12  dll      4
3     13  dll      3
4     14  dll      3
5     15  dll      5
2021-11-23 17:49:39

ในวันที่มีช่องข้อมูลอย่างเช่น:เปิดสูงที่ต่ำปิด...ได้ยังไงฉันเพิ่มพวกเขาตอนที่กำลังเปลี่ยนแปลงที่ df ต้องแฟ้ม csv?
eneko valero

@enekovalero คุณไม่จำเป็นต้องทำอะไรอย่างอื่นมากกว่าด้านบนรหัสมอส ฉัน df อเป็นเพียงตัวอย่าง ทุกคอลัมน์จะอยู่ในทุกอมเป็นโปรดิวเซอร์ dataframe. มันเป็นเพียงที่เข้าเงื่อนไขการกรองบอกชื่อมา สำหรับอนาคตของคุณคำถาม(หรือถ้าคุณต้องการให้ผมทดสอบของคุณจริงข้อมูลของ),ทำไม่ได้โพสรูปภาพ แทนที่จะทำอย่างนี้: df.head(50).to_dict() (หรือจำนวนแทนที่จะเป็น 50)และวางผลอยู่ในระหว่าง``<ที่นี่>``ในตัวคุณแล้ว-คำถาม
Serge de Gosson de Varennes

@eneko valero...ฉันไม่คิดว่าคุณสงครามแย่งชิงยุทธศาสฟังดูสมเหตุสมผลหรือมีเหตุผลเลอใดๆทั้งสิ้น คุณสามารถลองสงครามแย่งชิงยุทธศาสที่ถูกอ้างอิงทางด้านล่า? อาจจะเป็นแค่คนแรก 1/4 มารถใช้กับสิ่งที่คุณกำลังทำอะไรอยู่ github.com/ASH-WICUS/Notebooks/blob/master/...
ASH
0

นี่ควรจะเป็นสิ่งที่ทำได้กับค่าตรรกะกำลังทำดัชนี:

list_of_dataframes = [
    df[df.Name == name]
    for name
    in df.Name.unique()
]
2021-11-23 16:22:54

มันจะทำงานแต่ฉันคิดว่ามันจะค่อนข้างเชื่องช้าในวันที่ขนาดใหญ่เพราะคุณต้องสะทกสะทานเลยละสิทั้งหมดตรรกะชุดสำหรับแต่ละยูนิคอกชื่อมา
Kevin Roche

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่