如何在不指定from_dict列参数时向pandas DataFrame追加行?
解决方法:将字典值作为行追加到Pandas DataFrame
原始数据
原DataFrame df1:
a b 0 1 2 1 3 4
待追加的字典:
dictionary = {'2' : [5, 6], '3' : [7, 8]}
目标结果
a b 0 1 2 1 3 4 2 5 6 3 7 8
两种简便实现方式
方式一:直接提取字典值构建DataFrame后拼接
无需使用from_dict,直接提取字典的values生成新DataFrame,再与原表拼接:
import pandas as pd # 原DataFrame df1 = pd.DataFrame({'a': [1, 3], 'b': [2, 4]}) dictionary = {'2': [5, 6], '3': [7, 8]} # 用字典值创建新行的DataFrame,指定列名与原表一致 new_rows = pd.DataFrame(dictionary.values(), columns=df1.columns) # 拼接并重置索引 final_df = pd.concat([df1, new_rows], ignore_index=True) print(final_df)
方式二:使用from_dict(不指定column参数)转置后拼接
如果必须使用from_dict且不能赋值column参数,可先转置字典生成的DataFrame,再调整列名后拼接:
import pandas as pd df1 = pd.DataFrame({'a': [1, 3], 'b': [2, 4]}) dictionary = {'2': [5, 6], '3': [7, 8]} # 用from_dict生成DataFrame(不指定column参数),然后转置 temp_df = pd.DataFrame.from_dict(dictionary).T # 匹配原DataFrame的列名 temp_df.columns = df1.columns # 拼接并重置索引 final_df = pd.concat([df1, temp_df], ignore_index=True) print(final_df)
两种方式都能得到目标结果,方式一更直接简洁,方式二则严格符合你提出的from_dict使用约束。
内容的提问来源于stack exchange,提问作者programmer_04_03
相关产品推荐
相关产品推荐

