赞
踩
原始数据:
import pandas as pd import numpy as np data = {'a': [4, 6, 5, 7, 8], 'b': ['w', 't', 'y', 'x', 'z'], 'c': [1, 0, 6, -5, 3], 'd': [3, 4, 7, 10, 8], } df = pd.DataFrame(data, index=['one', 'two', 'three', 'four', 'five']) print(df) # a b c d # one 4 w 1 3 # two 6 t 0 4 # three 5 y 6 7 # four 7 x -5 10 # five 8 z 3 8 new_df = pd.DataFrame({'a': [1, 2, 3, 3, 4], 'b': [1, 2, 3, 3, 4], 'c': [22, 33, 22, 44, 66], 'd': [1, 2, 3, 3, 4] }, index=['one', 'two', 'three', 'four', 'five']) print(new_df) # a b c d # one 1 1 22 1 # two 2 2 33 2 # three 3 3 22 3 # four 3 3 44 3 # five 4 4 66 4
new_df['newcol'] = df['b']
print(new_df)
# a b c d newcol
# one 1 1 22 1 w
# two 2 2 33 2 t
# three 3 3 22 3 y
# four 3 3 44 3 x
# five 4 4 66 4 z
new_df['newcol'] = df.pop('b')
print(new_df)
# a b c d newcol
# one 1 1 22 1 w
# two 2 2 33 2 t
# three 3 3 22 3 y
# four 3 3 44 3 x
# five 4 4 66 4 z
new_df.insert(2, 'newcol', df['b'].values)
print(new_df)
# a b newcol c d
# one 1 1 w 22 1
# two 2 2 t 33 2
# three 3 3 y 22 3
# four 3 3 x 44 3
# five 4 4 z 66 4
DataFrame.insert(loc, column, value, allow_duplicates=False)
Parameters:
同:都可以实现将一个 DataFrame 中的一列,插入到另一个 DataFrame 中
异:方法一和方法二,必须保证两个 DataFrame 的 index 要相同,若不相同,则这一列对应的值为NaN,而且总是在末尾插入列。
而方法三没有这个限制,可以放在任意列,也不要求 index 相同
# 取出要插入的行 insertRow = df[1: 2] # insertRow = df.iloc[2, :] # 切片操作,行取第二行,列取所有 # insertRow = df.iloc[2] # 第二行,返回位置索引为1,也就是第二行数据。位置索引,和列表索引类似,里面只能是数字 # insertRow = df.loc['two'] # 返回标签为‘two’的数据 print(insertRow) # a b c d # two 6 t 0 4 newData = new_df.append(insertRow) print(newData) # a b c d # one 1 1 22 1 # two 2 2 33 2 # three 3 3 22 3 # four 3 3 44 3 # five 4 4 66 4 # two 6 t 0 4
# 将要插入的这一行的列名,要与被插入的DataFrame的列名相同,若不相同,则会增加某一的列,对应的值为NaN # 先切割 above = new_df[:2] print(above) # a b c d # one 1 1 22 1 # two 2 2 33 2 below = new_df[2:] print(below) # a b c d # three 3 3 22 3 # four 3 3 44 3 # five 4 4 66 4 # 再拼接 newData = above.append(insertRow, ignore_index=True).append(below, ignore_index=True) print(newData) # a b c d # 0 1 1 22 1 # 1 2 2 33 2 # 2 6 t 0 4 # 3 3 3 22 3 # 4 3 3 44 3 # 5 4 4 66 4
同:都可以实现将一个 DataFrame 中的一行,插入到另一个 DataFrame 中
异:方法一总是在末尾插入列。
而方法三没有这个限制,可以放在任意列
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。