把dataframe转换为list
输入多维dataframe:
df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9], 'b':[3,5,6,2,4,6,7,8,7,8,9]})
把a列的元素转换成list:
# 方法1df['a'].values.tolist() # 方法2df['a'].tolist()
把a列中不重复的元素转换成list:
df['a'].drop_duplicates().values.tolist()
输入一维dataframe:
df = pd.DataFrame([3, 5, 6, 2, 4, 6, 7, 8, 7, 8, 9])
转换成list[list]:
df.values.tolist()
把series转换为list
Series.tolist()
Python 将Dataframe转化为字典(dict)
有时候我们需要Dataframe中的一列作为key,另一列作为key对应的value。比如说在已知词频画词云的时候,这个时候需要传入的数据类型是词典。
import pandas as pd data = pd.DataFrame([['a',1],['b',2]], columns=['key','value']) dict1 = dict(zip(data['key'],data['value']))
data Out[25]: key value 0 a 1 1 b 2
输出结果:
dict1
Out[8]: {'a': 1, 'b': 2}
Dataframe有自带的方法可以将Dataframe转换为字典的格式。但是,这种方法是复合的字典,每一列以dataframe的index为key而不是某一列的值,每一列的值作为字典的value,然后再将所有的列放在一个字典里面。
data.to_dict() Out[10]: {'key': {0: 'a', 1: 'b'}, 'value': {0: 1, 1: 2}}
其实我们把key列作为index,再用上面的方法也可以实现一列为字典key,另一列为value。
dict2 = data.set_index('key').to_dict()
在使用时需要注意的是,这种方法输出的字典也是复合的字典,有一个用做字典value的列的列名。
dict2 Out[24]: {'value': {'a': 1, 'b': 2}}