我有一个看起来像这样的数据框
id_1 id_2 id_3 ...
date_1 1 3 4
date_2 4 6 3
date_3 5 7 1
...
我也在使用test_id
SELECT @@IDENTITY;
我想将此数据以此格式附加到同一SQL Server数据库中的现有表
TEST_ID DATE ID VALUE
test_id date_1 id_1 1
test_id date_1 id_2 3
test_id date_1 id_3 4
test_id date_2 id_1 4
test_id date_2 id_2 6
test_id date_2 id_3 3
test_id date_3 id_1 5
test_id date_3 id_2 7
test_id date_3 id_3 1
如何准备Dataframe以便to sql以所需格式将其写入表中?
我已经尝试重置索引和旋转,但我无法理解。
答案 0 :(得分:1)
使用stack
In [3023]: (df.stack().reset_index(name='VALUE')
.rename(columns={'level_0': 'DATE', 'level_1': 'ID'})
.assign(TEST_ID='test_id'))
Out[3023]:
DATE ID VALUE TEST_ID
0 date_1 id_1 1 test_id
1 date_1 id_2 3 test_id
2 date_1 id_3 4 test_id
3 date_2 id_1 4 test_id
4 date_2 id_2 6 test_id
5 date_2 id_3 3 test_id
6 date_3 id_1 5 test_id
7 date_3 id_2 7 test_id
8 date_3 id_3 1 test_id
答案 1 :(得分:1)
d=d.reset_index().melt('index')
d['TEST_ID']='TEST_ID'
d.rename(columns={'index': 'DATE', 'variable': 'ID'})
Out[147]:
DATE ID value TEST_ID
0 date_1 id_1 1 TEST_ID
1 date_2 id_1 4 TEST_ID
2 date_3 id_1 5 TEST_ID
3 date_1 id_2 3 TEST_ID
4 date_2 id_2 6 TEST_ID
5 date_3 id_2 7 TEST_ID
6 date_1 id_3 4 TEST_ID
7 date_2 id_3 3 TEST_ID
8 date_3 id_3 1 TEST_ID