将dataframe单元格值(列表)插入mysql多列Python
我正在用Python处理数据帧,并尝试在MySQL数据库中插入数据。我知道我可以使用将dataframe单元格值(列表)插入mysql多列Python,python,mysql,pandas,dataframe,Python,Mysql,Pandas,Dataframe,我正在用Python处理数据帧,并尝试在MySQL数据库中插入数据。我知道我可以使用df.to_sql将dataframe插入sql,但在我的例子中,dataframe的一个单元格中有一个列表,我必须将该列表插入数据库中表的多列中 这是我的数据框: UserId UserName Address Res 1 User1 Add1 [1,2,3...36] 2 User2 Add2 [1,2,3...36] In [971]: df
df.to_sql
将dataframe插入sql,但在我的例子中,dataframe的一个单元格中有一个列表,我必须将该列表插入数据库中表的多列中
这是我的数据框:
UserId UserName Address Res
1 User1 Add1 [1,2,3...36]
2 User2 Add2 [1,2,3...36]
In [971]: df
Out[971]:
UserId UserName Address Res
0 1 User1 Add1 [1, 2, 3, 4]
1 2 User2 Add2 [2, 3, 4, 5]
In [973]: pd.concat([df, pd.DataFrame(df['Res'].values.tolist())], axis=1).drop('Res', 1)
Out[973]:
UserId UserName Address 0 1 2 3
0 1 User1 Add1 1 2 3 4
1 2 User2 Add2 2 3 4 5
这是我的数据库表结构:
UserId UserName Address Res1 Res2 Res3... Res36
现在我被困在这里,我如何才能有效地将Res
数据插入多列?列表数据是按列名称顺序排列的,所以我不必担心正确的列名称/数据
任何猜测???您可以将列表列拆分为多个列,然后在新数据框上使用
df.to_sql
:
UserId UserName Address Res
1 User1 Add1 [1,2,3...36]
2 User2 Add2 [1,2,3...36]
In [971]: df
Out[971]:
UserId UserName Address Res
0 1 User1 Add1 [1, 2, 3, 4]
1 2 User2 Add2 [2, 3, 4, 5]
In [973]: pd.concat([df, pd.DataFrame(df['Res'].values.tolist())], axis=1).drop('Res', 1)
Out[973]:
UserId UserName Address 0 1 2 3
0 1 User1 Add1 1 2 3 4
1 2 User2 Add2 2 3 4 5
您可以将列表列拆分为多列,然后在新数据框上使用
df.to_sql
:
UserId UserName Address Res
1 User1 Add1 [1,2,3...36]
2 User2 Add2 [1,2,3...36]
In [971]: df
Out[971]:
UserId UserName Address Res
0 1 User1 Add1 [1, 2, 3, 4]
1 2 User2 Add2 [2, 3, 4, 5]
In [973]: pd.concat([df, pd.DataFrame(df['Res'].values.tolist())], axis=1).drop('Res', 1)
Out[973]:
UserId UserName Address 0 1 2 3
0 1 User1 Add1 1 2 3 4
1 2 User2 Add2 2 3 4 5
您是否尝试将列表项存储到字符串变量中?不,我没有。。将它们存储为单独的字符串变量??您能否更具体地说明问题所在?你是在问如何将序列分割成各自的列吗?这是否回答了你的问题?您是否尝试将列表项存储到字符串变量中?不,我没有。。将它们存储为单独的字符串变量??您能否更具体地说明问题所在?你是在问如何将序列分割成各自的列吗?这是否回答了你的问题?