如果字典的值是元组的元组,如何将 python 字典保存到数据框中
How do I save python dictionary into a dataframe if the value of dictionary is tuple of tuples
字典结构如下:
{ key1 : ((( ' value1', 'value2'),'value3'),'value4')}.
我希望 value1 位于第一行 (dataframe) 中,value2 位于第二行 (dataframe) 中,所有值都类似。
对于这个例子,我需要在数据框中创建 4 行。
这是一种方法:
输入字典:
{'key1': (((' value1', 'value2'), 'value3'), 'value4')}
代码:
def flatten(seq):
l = []
for elt in seq:
t = type(elt)
if t is tuple or t is list:
for elt2 in flatten(elt):
l.append(elt2)
else:
l.append(elt)
return l
df['val'] = flatten(t)
print(df)
打印:
val
0 value1
1 value2
2 value3
3 value4
import pandas as pd
dict_1 = {'key1': ((('value1', 'value2'),'value3'),'value4')}
def nested_value_flatter(input_data, rest_value=[]):
if type(input_data[0]) == tuple:
rest_value.append(input_data[-1])
return nested_value_flatter(input_data[0], rest_value)
else:
rest_value.append(input_data[-1])
rest_value.append(input_data[0])
return rest_value[::-1]
new_dict = dict()
for k, v in dict_1.items():
new_dict[k] = nested_value_flatter(v)
new_df = pd.DataFrame(new_dict)
new_df 的打印如下。
key1
0 value1
1 value2
2 value3
3 value4
字典结构如下:
{ key1 : ((( ' value1', 'value2'),'value3'),'value4')}.
我希望 value1 位于第一行 (dataframe) 中,value2 位于第二行 (dataframe) 中,所有值都类似。 对于这个例子,我需要在数据框中创建 4 行。
这是一种方法:
输入字典:
{'key1': (((' value1', 'value2'), 'value3'), 'value4')}
代码:
def flatten(seq):
l = []
for elt in seq:
t = type(elt)
if t is tuple or t is list:
for elt2 in flatten(elt):
l.append(elt2)
else:
l.append(elt)
return l
df['val'] = flatten(t)
print(df)
打印:
val
0 value1
1 value2
2 value3
3 value4
import pandas as pd
dict_1 = {'key1': ((('value1', 'value2'),'value3'),'value4')}
def nested_value_flatter(input_data, rest_value=[]):
if type(input_data[0]) == tuple:
rest_value.append(input_data[-1])
return nested_value_flatter(input_data[0], rest_value)
else:
rest_value.append(input_data[-1])
rest_value.append(input_data[0])
return rest_value[::-1]
new_dict = dict()
for k, v in dict_1.items():
new_dict[k] = nested_value_flatter(v)
new_df = pd.DataFrame(new_dict)
new_df 的打印如下。
key1
0 value1
1 value2
2 value3
3 value4