Sym*_*ony 11 python dictionary dataframe pandas
我有一个数据框df,如下所示:
| name | coverage |
|-------|----------|
| Jason | 25.1 |
Run Code Online (Sandbox Code Playgroud)
我想将其转换为字典。我在中使用了以下命令pandas:
dict=df.to_dict()
Run Code Online (Sandbox Code Playgroud)
的输出dict给了我以下内容:
{'coverage': {0: 25.1}, 'name': {0: 'Jason'}}
Run Code Online (Sandbox Code Playgroud)
我不希望0在我的输出中。我相信这是由于我的dataframe中的列索引而捕获的df。我应该怎么做才能0在输出中消除(我不希望捕获索引。)预期输出:
{'coverage': 25.1, 'name': 'Jason'}
Run Code Online (Sandbox Code Playgroud)
Ant*_*vBR 13
当我看到有两列的数据集时,看到的是一个序列,而不是一个数据框。
试试这个:d = df.set_index('name')['coverage'].to_dict()它将把你的数据框转换成一个序列并输出。
但是,如果您打算有更多列而不是一个公共键,则可以将它们存储在数组中,而不是使用“ records”。d = df.to_dict('r')。`
可运行的代码:
import pandas as pd
df = pd.DataFrame({
'name': ['Jason'],
'coverage': [25.1]
})
print(df.to_dict())
print(df.set_index('name')['coverage'].to_dict())
print(df.to_dict('r'))
Run Code Online (Sandbox Code Playgroud)
返回值:
{'name': {0: 'Jason'}, 'coverage': {0: 25.1}}
{'Jason': 25.1}
[{'name': 'Jason', 'coverage': 25.1}]
Run Code Online (Sandbox Code Playgroud)
还有一件事,请尽量避免使用保留的变量名dict。
你可以这样做:
data.to_dict('list')
#output:
#{'Feeling low in energy-slowed down': [2, 4, 2, 4]}
Run Code Online (Sandbox Code Playgroud)
dict1 = df.to_dict('records')
Run Code Online (Sandbox Code Playgroud)
要么
dict2 = df.to_dict('list')
Run Code Online (Sandbox Code Playgroud)
list:键是列名,值是列数据的列表
records:每行成为一个字典,其中key是列名,value是单元格中的数据
| 归档时间: |
|
| 查看次数: |
11665 次 |
| 最近记录: |