Ich entschied mich, Pandas (0.18.1) zu verwenden, um an Protokolldaten von einem meiner Modelle mit diskreten Elementpartikeln zu arbeiten. Dieses Protokoll hat Attribute im Zusammenhang mit 400000 Teilchen (x, y, z-Positionen und Geschwindigkeiten; rund 5 M Zeilen) mit der folgenden Struktur:Pandas und Großer Datenrahmen
*****************************************
* Log File Started 16:12:54 Fri May 06 2016
* 4.00-182 (64-bit)
*
*
*
*****************************************
elrond>
Ball_Id 400000
Ballx 4.90707890560e+002
Bally 9.19154644947e+001
Ballz -1.02229145082e+002
Top 0
Dx 1.38904597749e+000
Dy -6.35282219552e-001
Dz -1.64199872399e+001
Velx -1.02171891554e-001
Vely -1.05325799073e-002
Velz 4.04701964190e-003
V_rotx -6.86579713474e-004
V_roty 9.14539972137e-004
V_rotz -7.76239471255e-005
Ball_Id 399999
Ballx 7.48469370428e+002
Bally 2.46351257548e+001
Ballz -8.62490399310e+001
Top 0
Dx 6.96274451933e-001
Dy 1.32036797483e+000
Dz -1.87517847236e+001
Velx -1.05970416552e-002
Vely 7.21491947832e-003
Velz 7.55093644847e-004
V_rotx 5.17377621567e-006
V_roty 2.59041151397e-005
V_rotz -2.31863427848e-005
Ball_Id 399998
Ballx 1.19395239848e+002
Bally 7.80444921824e+001
Ballz 2.34352803814e+000
Top 0
Dx 5.90917177795e+001
Dy 1.37004693793e+000
Dz 1.61822040639e+001
Velx 1.31243808962e+001
Vely -8.20542806383e-001
Velz 6.19737823128e+000
V_rotx -4.89777825136e-002
V_roty 9.36324827264e-002
V_rotz -5.90727285357e-002
Ich will eine Datei mit diesem Format erhalten:
Ball_Id Ballx Bally Ballz Topo Dx Dy Dz Velx Vely Velz V_rotx V_roty V_rotz
400000 4.90714073236e+002 9.19065373175e+001 -1.02231392317e+002 0 1.39522865407e+000 -6.44209396797e-001 -1.64222344741e+001 2.68881171417e-002 -1.81227520077e-002 -4.04738585013e-003 7.75669240314e-005 -4.00875407555e-004 -1.41810083383e-004
399999 7.48472521138e+002 2.46451444724e+001 -8.62470162686e+001 0 6.99425161310e-001 1.33038669240e+000 -1.87497610612e+001 1.18932839949e-002 4.69256261481e-003 1.38621378252e-002 -6.30154171502e-006 -3.23043526114e-004 2.16368702869e-007
399998 1.28116171848e+002 7.67039376593e+001 7.55623907648e+000 0 6.78126497794e+001 2.94924148016e-002 2.13949151023e+001 6.33940244884e+000 1.73376959946e-001 4.85967665797e+000 -3.52816583310e-001 -5.38872247688e-001 1.12736371677e-001
399996 4.79841096924e+002 -1.62882386399e+002 -1.30791611129e+002 Topo1 2.73837679243e+000 -1.47077675894e+000 -6.28235946603e+000 7.90493795999e-002 -3.39089755154e-002 1.02726075741e-003 -1.14738159279e-004 -7.24753898272e-005 -6.78627383629e-005
Bisher konnte ich einen sehr ineffizienten Code schreiben, der eine Ewigkeit braucht, um zu der endgültigen Datei zu gelangen, die ich möchte. Jeder Vorschlag, es zu verbessern, wäre großartig. Dank
import pandas as pd
#=================================================================================
df = pd.read_csv("Desloc_Caixa_Compress_14_04_16_19.log",index_col=0,header = None, skiprows =[0,1,2,3,4,5,6,7],engine='python',skipfooter = 4, sep=" ")
dados = df[0:14]
#=================================================================================
k=14; f=28; m=28; n=42
while (n<=len(df)):
a=df[k:f]
b=df[m:n]
k+=28; f+=28
m+=28; n+=28
dados = pd.concat([dados,a, b], axis=1)
#=================================================================================
d= dados.transpose()
data = d.set_index('Ball_Id')
data.to_csv('Data_14_04_16_19.txt', sep='\t')
#=================================================================================
Dank für Ihre Antwort danken. Wenn ich den Code getestet habe ich die folgende Fehlermeldung: Datei "C: \ Benutzer \ paulo_000 \ Desktop \ PFC3d \ Deslocamentos_Experimentos_Pandas_StackOverflow.py", Zeile 25, in df = df [1] .pivot (Index =‘ index ', columns = 0) [1] Datei "C: \ Benutzer \ paulo_000 \ Desktop \ Python \ progs \ WinPython-64bit-2.7.10.1 \ python-2.7.10.amd64 \ lib \ site-packages \ pandas \ core \ generic.py ", Zeile 2150, in __getattr__ (type (self) .__ name__, name)) AttributError: 'Series' Objekt hat kein Attribut 'pivot' –
@PauoSantarem: Mein Fehler; jetzt behoben. – unutbu
Beeindruckend ... Vielen Dank! –