Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DataFrame:如何将由dict组成的列处理为由dict键确定的多个列?_Python_Excel_Pandas_Csv_Dataframe - Fatal编程技术网

Python DataFrame:如何将由dict组成的列处理为由dict键确定的多个列?

Python DataFrame:如何将由dict组成的列处理为由dict键确定的多个列?,python,excel,pandas,csv,dataframe,Python,Excel,Pandas,Csv,Dataframe,在我的一个数据框中,每一行都有一列包含字典或dict 例如,其中一行将包含“{'a':1,'b':2}” 我需要创建一个数据帧,其中列为“a”和“b”,或者列中包含的所有dict中都有许多唯一的键 例如,如果一行包含“{a':1,'b':2}”,而另一行包含“{a':1,'c':2}”,那么我需要创建一个数据帧,其中的列为'a'、'b'和'c'。列名将是dicts的键,行将包含dicts的值。数据帧的索引将与原始索引相同 谢谢。我认为您可以使用DataFrame构造函数将data列转换为nump

在我的一个数据框中,每一行都有一列包含字典或dict

例如,其中一行将包含“{'a':1,'b':2}”

我需要创建一个数据帧,其中列为“a”和“b”,或者列中包含的所有dict中都有许多唯一的键

例如,如果一行包含“{a':1,'b':2}”,而另一行包含“{a':1,'c':2}”,那么我需要创建一个数据帧,其中的列为'a'、'b'和'c'。列名将是dicts的键,行将包含dicts的值。数据帧的索引将与原始索引相同


谢谢。

我认为您可以使用
DataFrame
构造函数将
data
列转换为
numpy数组,然后再转换为
list

#borrowing sample from DeepSpace's answer
df = pd.DataFrame({'data': [{'a': 1, 'b': 2}, {'a': 3, 'c': 4}]})
print (df)
               data
0  {'a': 1, 'b': 2}
1  {'a': 3, 'c': 4}

df1 = pd.DataFrame(df['data'].values.tolist(), index=df.index)
print (df1)
   a    b    c
0  1  2.0  NaN
1  3  NaN  4.0

我认为您可以使用
DataFrame
构造函数将
data
列转换为
numpy数组,然后再转换为
list

#borrowing sample from DeepSpace's answer
df = pd.DataFrame({'data': [{'a': 1, 'b': 2}, {'a': 3, 'c': 4}]})
print (df)
               data
0  {'a': 1, 'b': 2}
1  {'a': 3, 'c': 4}

df1 = pd.DataFrame(df['data'].values.tolist(), index=df.index)
print (df1)
   a    b    c
0  1  2.0  NaN
1  3  NaN  4.0

谢谢你让我的回答看起来很可笑;)。你知道为什么熊猫(或numpy?)决定把
1
3
保留为int,而
2
4
变为float吗?因为
NaN
将列中的值转换为float。谢谢你让我的答案看起来很可笑;)。你知道为什么熊猫(或numpy?)决定将
1
3
保留为int,而
2
4
变为float吗?因为
NaN
s列中的值转换为float。