Мне нужно выполнить некоторые вычисления для некоторых данных, извлеченных из таблицы продаж, используя pyodbc.Я могу вытащить данные, тогда я подумал, что могу загрузить их в пандас.Когда датафрейм загружается, мои данные хранятся в одном столбце, а на самом деле это 5 отдельных столбцов.
query = """SELECT OD.OrderNum, OD.Discount,OD.OrderQty,OD.UnitPrice, (a.OurReqQty - (a.OurJobShippedQty + a.OurStockShippedQty)) AS RemainingQty
FROM PUB.OrderDtl AS OD
INNER JOIN PUB.OrderRel AS a ON (OD.Company = a.Company) AND (OD.OrderNum = a.OrderNum) AND (OD.OrderLine = a.OrderLine)
WHERE (a.OpenRelease = 1)"""
print (query)
cnxn = pyodbc.connect(connection_string)
cursor = cnxn.cursor()
cursor.execute(query)
ab = list(cursor.fetchall())
df = pd.DataFrame(ab, columns=["remain"])
, который возвращает это.
[(115702, Decimal('0.00'), Decimal('25.00'), Decimal('145.00000'), Decimal('25.00')),
(115793, Decimal('0.00'), Decimal('20.00'), Decimal('823.00000'), Decimal('20.00')),
(115793, Decimal('0.00'), Decimal('20.00'), Decimal('823.00000'), Decimal('20.00')),
(116134, Decimal('0.00'), Decimal('10.00'), Decimal('587.00000'), Decimal('5.00')),
(116282, Decimal('0.00'), Decimal('1.00'), Decimal('699.95000'), Decimal('1.00'))]
Когда я загружаю это в фрейм данных, это выглядит так.
remain
0 [115702, 0.00, 25.00, 145.00000, 25.00]
1 [115793, 0.00, 20.00, 823.00000, 20.00]
2 [115793, 0.00, 20.00, 823.00000, 20.00]
3 [116134, 0.00, 10.00, 587.00000, 5.00]
4 [116282, 0.00, 1.00, 699.95000, 1.00]
Я пытался преобразовать это вstring by
df.index = df.index.map(str)
df_split = df["remain"].str.split(', ', 1)
Но мой сплит выглядит как
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
Я знаю, что это проблема форматирования, или я предполагаю, что это так, но я не знаю, с чего начать.Я подумал, что было бы проще разделить, если бы это была строка, но, возможно, я что-то упустил.
думал, что этот пост поможет, но я думаю, что мне нужно экспортировать, а затем перечитать данные обратно.
Я был бы очень признателен за любую помощь.