pandas DataFrame增加一行、一列、多行、多列

# 增加一行或者一列
import numpy as np
import pandas as pd


# 增加一行
df = pd.DataFrame(np.random.rand(4,5), columns=list('abcde'), index=list('hijk'))
df.loc[df.shape[0]] = np.nan
print('\n增加一行:\n', df)

# 增加一列
df = pd.DataFrame(np.random.rand(4,5), columns=list('abcde'), index=list('hijk'))
df[df.shape[1]] = np.nan
print('\n增加一列:\n', df)
# 增加多行或者多列

import numpy as np
import pandas as pd

# 增加多行
# 方法一:使用df.reindex
df = pd.DataFrame(np.random.rand(4,5), columns=list('abcde'), index=list('hijk'))
new_index = df.index.tolist() + list(range(4,8))
df = df.reindex(new_index)
print('\n增加多行:\n',df)

# 方法二:使用pd.concat
# pd.concat方式,需要创建新的DataFrame并按照pd.columns定义列名,再填充np.nan,操作麻烦

# 其它:索引方式行不通
# df[4:8] = np.nan
# df.loc[4:8] = np.nan
# df.loc[[4,5,6,7]] = np.nan
# df.loc[4:8,:] = np.nan
# df.loc[[4,5,6,7],:] = np.nan
# .iloc也不可行
# 均不可行


# 增加多列
# 方法一:使用df.reindex
df = pd.DataFrame(np.random.rand(4,5), columns=list('abcde'), index=list('hijk'))
new_col = df.columns.tolist() + list(range(5,9))
df = df.reindex(columns=new_col)
print('\n增加多列——方法一:\n',df)

# 方法二:使用pd.concat
df = pd.DataFrame(np.random.rand(4,5), columns=list('abcde'), index=list('hijk'))
df = pd.concat([df, pd.DataFrame(columns=list(range(5,9)))], axis=1)
print('\n增加多列——方法二:\n',df)

# 方法三:索引方式也可行,但耗时增加了25倍
df = pd.DataFrame(np.random.rand(4,5), columns=list('abcde'), index=list('hijk'))
df[[5,6,7,8]] = np.nan
# df.loc[:,[5,6,7,8]] = np.nan
print('\n增加多列——方法三:\n',df)
# 这样的索引不可行:
# df.loc[:,5:9] = np.nan
# .iloc也不可行

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值