从字典创建数据帧的问题

2024-09-22 14:36:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我从字典中创建了一个数据帧,如下所示:

import pandas as pd
data = {'Name': 'Ford Motor', 'AssetType': 'Common Stock', 'Exchange': 'NYSE'}

records = []
statement = {}
    
for key, value in data.items():
    statement = {}
    statement[key] = value

    records.append(statement)
df = pd.DataFrame(records)

如果我这样做,输出如下所示:

    Name        AssetType     Exchange
0   Ford Motor  NaN           NaN
1   NaN         Common Stock  NaN
2   NaN         NaN           NYSE

我希望第一行的值和结果如下所示:

    Name    AssetType    Exchange
0   Ford    Common Stock NYSE

Tags: keynamedataexchangevaluestockcommonnan
2条回答

有很多方法可以将数据(dict、list、嵌套list等)转换为数据帧。Pandas还包括许多创建方法,其中一些方法会重叠,因此很难记住如何从数据创建dfs。以下是为您的数据执行此操作的几种方法:

  • df = pd.DataFrame([data])

  • df = pd.Series(data).to_frame().T

  • pd.DataFrame.from_dict(data, orient="index").T

  • pd.DataFrame.from_records(data, index=[0])

依我看,from_dict是最不直观的(我在第一次尝试时从来没有正确的参数)。我发现专注于一种施工方法比每次使用不同的施工方法更令人难忘;我使用pd.DataFrame(...)from_records(...)最多

创建数据帧时,只需将data放入列表[]中即可:

import pandas as pd
data = {'Name': 'Ford Motor', 'AssetType': 'Common Stock', 'Exchange': 'NYSE'}

df = pd.DataFrame([data])
print(df)

印刷品:

         Name     AssetType Exchange
0  Ford Motor  Common Stock     NYSE

相关问题 更多 >