Что я хочу знать, так это то, как я могу использовать вышеуказанный фрейм данных с регулярным выражением, чтобы расположить строки данных в правильном порядке.Как вы можете видеть, например, по индексам 2 и 4, количество и количество находятся в неправильном порядке.Кто-нибудь есть какие-либо идеи, как я могу это исправить?
data = [['Total 8\r\r\nQuantity 2\r\r\nPiece 4'], ['Total 8\r\r\nQuantity 2\r\r\nPiece 4'],['Total 8\r\r\nPiece 2\r\r\nQuantity 4'], ['Total 8\r\r\nQuantity 2\r\r\nPiece 4'], ['Total 8\r\r\nPiece 2\r\r\nQuantity 4'],['Total 8\r\r\nQuantity 2\r\r\nPiece 4'], ['Total 8\r\r\nQuantity 2\r\r\nPiece 4'],['Total 8\r\r\nPiece 2\r\r\nQuantity 4'], ['Total 8\r\r\nQuantity 2\r\r\nPiece 4'], ['Total 8\r\r\nPiece 2\r\r\nQuantity 4']]
df = pd.DataFrame(data, columns = ['Information'])
df
+-------+--------------------------------------+
| index | Information |
+-------+--------------------------------------+
| 0 | Total 8\r\r\nQuantity 2\r\r\nPiece 4 |
| 1 | Total 8\r\r\nQuantity 2\r\r\nPiece 4 |
| 2 | Total 8\r\r\nPiece 2\r\r\nQuantity 4 |
| 3 | Total 8\r\r\nQuantity 2\r\r\nPiece 4 |
| 4 | Total 8\r\r\nPiece 2\r\r\nQuantity 4 |
| 5 | Total 8\r\r\nQuantity 2\r\r\nPiece 4 |
| 6 | Total 8\r\r\nQuantity 2\r\r\nPiece 4 |
| 7 | Total 8\r\r\nPiece 2\r\r\nQuantity 4 |
| 8 | Total 8\r\r\nQuantity 2\r\r\nPiece 4 |
| 9 | Total 8\r\r\nPiece 2\r\r\nQuantity 4 |
+-------+--------------------------------------+
dt = pd.DataFrame(df)
data = []
for item in dt['Information']:
regex = re.findall(r"(\d+)\D+(\d+)\D+(\d+)",item)
quantity = re.findall(r"\bTotal\s?\d\D+(\bQuantity)",item)
piece = re.findall(r"\bTotal\s?\d\D+(\bPiece)",item)
regex = (map(list,regex))
data.append(list(map(int,list(regex)[0])))
dftotal = pd.DataFrame(data, columns=['Total','Quantity','Piece'])
print(dftotal)
С этим кодом я получил столбец, как показано ниже
+-------+----------+-------+
| Total | Quantity | Piece |
+-------+----------+-------+
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
+-------+----------+-------+
Как я могу получить кадр данных, как показано ниже, переключив те неправильнозаказать из de 'data array' и поместить правильные переменные в один фрейм данных?
+-------+----------+-------+
| Total | Quantity | Piece |
+-------+----------+-------+
| 8 | 2 | 4 |
| 8 | 4 | 2 |
| 8 | 2 | 4 |
| 8 | 4 | 2 |
| 8 | 2 | 4 |
| 8 | 2 | 4 |
| 8 | 4 | 2 |
| 8 | 2 | 4 |
| 8 | 4 | 2 |
+-------+----------+-------+