ich einen Datenrahmen nicht übereinstimmen müssen, wie unten dargestellt:Reihe von Datenrahmen mit vorheriger Reihe registrieren, falls Bedingung
df
data
10.100.10.10==> [{'ID': 'abcdef', 'date': '2017-04-14', 'serialNo': '215687'}]
10.100.10.10==> [{'ID': 'abcdef', 'date': '2017-04-16', 'serialNo': '456123'}]
10.100.10.10==> [{'ID': 'abcdef', 'date': '2017-04-17'
, 'serialNo': '456125'}]
10.100.10.10==> [{'ID': 'qwerty', 'date': '2017-04-20', 'serialNo': '456166'}]
10.100.10.10==> [{'ID': 'qwerty', 'date': '2017-04-21', 'seri
alNo': '756984'}]
10.100.10.10==> [{'ID': 'zxcvbn', 'date': '2017-04-24', 'serialNo': '852369'}]
10.100.10.10==> [{'ID': 'zxcvbn', 'date': '2017-04-26', 'serialNo': '852367'}]
10.100.10.10==> [{'ID': 'zaqwsx',
'date': '2017-04-27', 'serialNo': '854123'}]
10.100.10.10==> [{'ID': 'edcvfr'
, 'date': '2017-04-28', 'serialNo': '852369'}]
10.100.10.10==> [{'ID': 'yuiopa', 'date': '2017-04-29', 'serialNo': '523698'}]
Was ich will, ist, wenn Zeile nicht mit bestimmten Zeichenfolge beginnen wird (hier in meinem Fall ist es "10.100.10.10 ==>") es sollte mit der vorherigen Zeile verbunden werden. Hier in Beispiel Zeile 4 beginnt nicht mit „10.100.10.10 ==>“, so dass es mit der Zeile 3. Gleiche wie für Zeile 7, 11 und 13.
data
10.100.10.10==> [{'ID': 'abcdef', 'date': '2017-04-14', 'serialNo': '215687'}]
10.100.10.10==> [{'ID': 'abcdef', 'date': '2017-04-16', 'serialNo': '456123'}]
10.100.10.10==> [{'ID': 'abcdef', 'date': '2017-04-17', 'serialNo': '456125'}]
10.100.10.10==> [{'ID': 'qwerty', 'date': '2017-04-20', 'serialNo': '456166'}]
10.100.10.10==> [{'ID': 'qwerty', 'date': '2017-04-21', 'serialNo': '756984'}]
10.100.10.10==> [{'ID': 'zxcvbn', 'date': '2017-04-24', 'serialNo': '852369'}]
10.100.10.10==> [{'ID': 'zxcvbn', 'date': '2017-04-26', 'serialNo': '852367'}]
10.100.10.10==> [{'ID': 'zaqwsx', 'date': '2017-04-27', 'serialNo': '854123'}]
10.100.10.10==> [{'ID': 'edcvfr', 'date': '2017-04-28', 'serialNo': '852369'}]
10.100.10.10==> [{'ID': 'yuiopa', 'date': '2017-04-29', 'serialNo': '523698'}]
ich war in der Lage, es zu tun mit unten verbunden ist Code, aber ich habe riesige Datenmenge und es dauert lange.
for i in range(0,len(df["Data"])):
if df['Data'][i].startswith("10.100.10.10==>"):
df['Data'][i] = df['Data'][i]
else:
df['Data'][i-1] = "".join([df['Data'][i-1],df['Data'][i]])
df = df[df['Data'].str.startswith("10.100.10.10==>")].reset_index(drop=True)
Bitte lassen Sie mich wissen, wenn es andere schnelleren Weg, um diese Aufgabe abzuschließen.
Danke @piRSquared. Das funktioniert genau so, wie ich es wollte. – Shadkhan