我有一個數據幀,如下圖所示:加入數據框中的行與前一行如果條件不匹配
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'}]
我要的是,如果行不具有特定字符串開頭(在我的情況下它是「10.100.10.10 ==」),它應該與前一行連接。這裏例如在第4行是不是從開始「10.100.10.10 ==>」,因此它與3行同爲7行,第11和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'}]
我能夠與下面做接合代碼,但我有巨大的數據集,它需要很長時間。
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)
請讓我知道是否有任何其他更快的方式來完成此任務。
謝謝@piRSquared。這完全按照我想要的方式工作。 – Shadkhan