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. 采用insert()

	# 使用方法是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)
  • 参考
  1. pandas df.iloc[]的典型用法
  2.  df.loc[]和df.iloc[]的区别
  3. pandas.DataFrame

你可能感兴趣的:(python,#,pandas系列,数据分析,数据挖掘)