Python中,将 dict 转为 pandas 中的 dataframe 格式,并将 dict 的 keys 作为数据列,且赋予该数据列新的列名。
我们假设dict的内容如下所示:
dict_data = {a: 1, b: 2, c: 3}
假设我们想要将keys 与 values 作为数据列,并且命名为kys 和 vas。
那么,首先要将其转换为dataframe,
import pandas as pd
frame = pd.DataFrame.from_dict(dict_data, orient='index', columns=['values']
此时,生成的dataframe会默认将keys作为索引(index),如下所示:
因此,我们要先使用DataFrame的reset_index()函数,将索引列恢复为数据列。
frame2 = frame.reset_index()
reset_index( ) 默认返回一个新的副本,但是原来的 dataframe 并没有发生改变,所以需要创建新的变量来接收副本。现在,新的dataframe则是下面的样子:
可以发现,keys 由索引列变成了数据列,且列名默认为 ‘index’。现在我们可以再使用dataframe的rename( )方法,为 ‘index’ 列重命名:
frame3 = frame2.rename(columns={'index': 'kys'})
此时,表格形式如下:
至此,达成目的。
(1)关于dataframe.rom_dict( )中的orient参数设置的问题,建议参考官方说明,不做赘述 here.
(2)至于rename( ) 的参数问题,建议参考官方链接 here.
dict转dataframe,将keys作为数据列,并重新命名Python中,将 dict 转为 pandas 中的 dataframe 格式,并将 dict 的 keys 作为数据列,且赋予该数据列新的列名。我们假设dict的内容如下所示:dict_data = {a: 1, b: 2, c: 3}假设我们想要将keys 与 values 作为数据列,并且命名为kys 和 vas。那...
Python中,使用pandas进行数据处理和存储非常方便,同样,字典的使用也是很多操作中不可或缺的。本文主要是记录在使用过程中的经历,总结和分享,便于日后查看。
任务1:将字典的keys作为pandas的列名称,values作为pandas的行数据
废话不多说,直接上代码,结果一目了然:
import pandas as pd
dct = {'key1': [1, 4], 'key2': [2, 5], 'key3': [3, 6]}
dataframe = pd.DataFrame(dct, in.
a = ['Name', 'Age', 'Gender']
b = ['Ali', '19', 'China']
data = pd.DataFrame(zip(a, b), columns=['project', 'attribute'])
print data
dict_country = data.set_index('project').T.to_dict('list')
print dict_c
# 创建 MySQL 数据库连接
engine = create_engine('mysql+pymysql://username:password@host:port/database')
# 读取 DataFrame 数据
df = pd.read_csv('data.csv')
# 将 DataFrame 写入 MySQL 数据库中
df.to_sql(name='table_name', con=engine, if_exists='append', index=False)
其中,name 参数为表名,con 参数为数据库连接,if_exists 参数为数据存在时的处理方式,index 参数为是否将 DataFrame 的索引写入数据库中。如果需要将 DataFrame 的某一列插入到 MySQL 表的指定列中,可以先将 DataFrame 转换为字典,再使用 MySQL 的 INSERT INTO 语句插入数据,示例代码如下:
```python
import pandas as pd
import pymysql
# 创建 MySQL 数据库连接
conn = pymysql.connect(host='host', port=port, user='username', password='password', database='database')
# 读取 DataFrame 数据
df = pd.read_csv('data.csv')
# 将 DataFrame 转换为字典
data = df.to_dict(orient='records')
# 插入数据到 MySQL 表中
cursor = conn.cursor()
for row in data:
sql = "INSERT INTO table_name (col1, col2, col3) VALUES (%s, %s, %s)"
cursor.execute(sql, (row['col1'], row['col2'], row['col3']))
conn.commit()
cursor.close()
conn.close()
其中,col1、col2、col3 分别为 MySQL 表中的列名,可以根据实际情况进行修改。