我正在寻找一种创建pandas DataFrame的方法,然后使用字典列表中的pandas将其添加到excel文件中。
第一个字典具有3个值(整数),第二个字典具有一个对应于一组单词的值。这两个字典的键是相同的,但是要确保excel文件中没有错误,我希望将它们放在DataFrame中。
d1 = {'1': ['45', '89', '96'], '2': ['78956', '50000', '100000'], '3': ['0', '809', '656']}
d2 = {'1': ['connaître', 'rien', 'trouver', 'être', 'emmerder', 'rien', 'suffire', 'mettre', 'multiprise'], '2': ['trouver', 'être', 'emmerder'], '3' : ['con', 'ri', 'trou', 'êt', 'emmer',]}
我在每个尝试中都遇到错误,而且我真的很受阻,我需要一个解决方案
dictionaries = d1, d2
df = pd.read_csv(sys.argv[1], na_values=['no info', '.'], encoding='Cp1252', delimiter=';')
df1 = pd.DataFrame(d1).T.reset_index()
df1['value1_d2'] = ''
# iterate over the dict and add the lists of words in the new column
for k,v in d2.items():
df1.at[int(k) - 1, 'value1_d2'] = v
#print(df1)
df1.columns = ['id','value_1_Dict1','value_2_Dict1','value_3_Dict1',' value_2_Dict2']
cols = df1.columns.tolist()
cols = cols[-1:] + cols[:-1]
df1 = df1[cols]
print(df1)
df = pd.concat([df, df1], axis = 1)
df.to_excel('exit.xlsx')
我不断收到不同的错误:
提高ValueError('DataFrame构造函数未正确调用!')
ValueError:DataFrame构造函数未正确调用!
=>'值具有{new}元素'.format(old = old_len,new = new_len))
ValueError:长度不匹配:预期轴有4个元素,新值有6个元素
预期的输出:我将其添加到现有文件中:
score freq **value1_d2 id value1 value2 value3 **
0 0.5 2 **['connaître', 'rien', 'trouver', 'être', 'emmerder', 'rien', 'suffire', 'mettre', 'multiprise'] 1 45 89 96 **
1 0.8 5 ** ['trouver', 'être', 'emmerder'] 2 78956 5000 100000 **
2 0.1 5 **['con', 'ri', 'trou', 'êt', 'emmer',] 3 0 809 65 **
当尝试添加到excel文件时,出现以下错误,我想从第一列开始写入,以使密钥相同。
有没有办法使用熊猫来解决它(在本次研讨会中我必须使用熊猫。
谢谢。
答案 0 :(得分:1)
这样,您可以在单元格中添加单词列表:
df1 = pd.DataFrame(d1)
# the new column needs to have dtype object
df1['value1_d2'] = ''
# iterate over the dict and add the lists of words in the new column
for k,v in d2.items():
df1.at[int(k) - 1, 'value1_d2'] = v
我也使用了this post中的信息。
答案 1 :(得分:1)
将字典读入数据框时,可以使用:
>>> d1 = {'1': ['45', '89', '96'], '2': ['78956', '50000', '100000'], '3': ['0', '809', '656']}
>>> df1 = pd.DataFrame.from_dict(d1)