如何向无表头的Pandas DataFrame中添加数据行
嘿,我完全懂你碰到的这个小麻烦——无表头的Pandas DataFrame确实会让添加行的操作有点摸不着头脑,毕竟平时常用的方法都默认要指定列名对吧?别慌,我给你俩简单靠谱的解决方案,轻松搞定这个问题:
方法1:用pd.concat()(推荐,适配新版Pandas)
这是最稳妥的方式,因为它直接通过合并DataFrame来添加行,完美适配无表头的场景:
- 先把你的整数列表转成一个无表头的临时DataFrame
- 用
concat把原始DataFrame和临时DataFrame合并,记得加上ignore_index=True重置索引,避免索引冲突
代码示例:
import pandas as pd # 你的原始数据读取 sheet = pd.read_csv("labels.csv", header=None) simple_list = [1,2,3,4,2,1,1,1] # 把列表转成临时DataFrame new_row_df = pd.DataFrame([simple_list]) # 合并两个DataFrame sheet = pd.concat([sheet, new_row_df], ignore_index=True)
方法2:用append()(兼容旧版Pandas)
如果你用的是较旧的Pandas版本(低于2.0),append还能正常使用。因为无表头DataFrame的列名其实是默认的0,1,2,...整数索引,你可以直接把列表转成对应结构的临时DataFrame再append:
# 生成和原始DataFrame列名一致的临时DataFrame new_row = pd.DataFrame([simple_list], columns=sheet.columns) # 添加行并重置索引 sheet = sheet.append(new_row, ignore_index=True)
⚠️ 注意事项:
- 一定要确保
simple_list的长度和原始DataFrame的列数完全一致,不然会出现列对齐错误 - 如果列表长度和列数不匹配,你要么调整列表内容,要么先修改DataFrame的列数(比如添加/删除列)再执行添加操作
内容的提问来源于stack exchange,提问作者Bilal Nadeem
相关产品推荐
相关产品推荐

