Pandas中 DataFrame中添加一行/一列
Posted 王同学加油
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
- 参考
以上是关于Pandas中 DataFrame中添加一行/一列的主要内容,如果未能解决你的问题,请参考以下文章
python pandas中如何将dataframe中的一列字符串类型转换为浮点类型?
我在 Pandas 的 Dataframe 中添加了一行 3 次。但是,只添加了最后一行