Pandas中 DataFrame中添加一行/一列
概述
添加行df.loc[]以及df.append()两种方法,
添加列df[]和df.insert()两种方法。
添加行例concat()和reindex()两种方法
一、添加行
1.采用loc[]方法
loc方法和iloc方法一样,可以索引DataFrame数据,一般是通过data.loc[index, col] = value
# 构造一个空的dataframe import pandas as pd df = pd.DataFrame(columns=[name, number]) # loc[]中需要加入的是插入地方dataframe的索引,默认是整数型 df.loc[1] = [cat, 3] df.loc[a] = [123,30] data.loc[:, d] = 0 print(df)
2.采用append()方法
# 1. 采用append方法合并两个dataframe df = pd.DataFrame([[1, 2], [3, 4]], columns=list(AB)) df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list(AB)) # 合并 ignore_index设置为 True可以重新排列索引 append_df = df.append(df2, ignore_index=True) append_df : A B 0 1 2 1 3 4 2 5 6 3 7 8 # 2. 采用append方法添加多行 df = pd.DataFrame(columns=[A]) for i in range(5): df = df.append({A: i}, ignore_index=True) df A 0 0 1 1 2 2 3 3 4 4
3. 采用concat()方法 拼接数据,好处是可以同时新增多个列名和行名
# 如果是遍历添加多行,更高效的方法 pd.concat([pd.DataFrame([i], columns=[A]) for i in range(5)], ignore_index=True) A 0 0 1 1 2 2 3 3 4 4 data = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=[a, b, c]) data.insert(data.shape[1], d, 0) data[e] = 0 data = pd.concat([data, pd.DataFrame(columns=[d])], sort=False)
二、添加列
1.采用df[]
df = pd.DataFrame(columns=[name, number], data=[[cat, 3]]) # 添加一列,计算有多少条腿 df[leg] = df[number] * 4 # 添加一列,直接赋值有几个头 df[head] = 1
2.
# 使用方法是DataFrame.insert(loc, column, value, allow_duplicates=False) # (添加列位置索引序号,添加列名, 数值, 是否允许列名重复) df.insert(1, tail, 1, allow_duplicates=False)
3.采用reindex()函数
# reindex 函数,可以指定缺失值填充的值, # 缺点是要把原有的列名和新列名都加上,如果列名过多比较麻烦 data = data.reindex(columns=[a, b, c, d], fill_value=0)
-
参考