我想在数据框中添加两列,假设我们在数据框中有 50 行,所以我的第 1 列值应该是 1 到 50,第 2 列值应该是 51 到 100。
def insertId(new_df, str):
df.insertId(0, str, range(1, 1 + len(df)))
return df
上述函数需要更正才能满足我的要求,但无法这样做,因为我是Python初学者。
最佳答案
创建第一个 numpy array
并将其传递给 DataFrame
构造函数:
a = np.arange(1, 101).reshape(2,-1).T
df1 = pd.DataFrame(a, columns=['a','b'])
print(df1.head())
a b
0 1 51
1 2 52
2 3 53
3 4 54
4 5 55
最后将其添加到原始 DataFrame:
df = df.join(df1)
insert
函数的解决方案 - 可以指定列 pos
的位置,然后指定列名 col
和最后一个起始编号 start
:#some Dataframe
a = np.arange(1, 101).reshape(2,-1).T
df = pd.DataFrame(a, columns=['a','b'])
print (df.head())
a b
0 1 51
1 2 52
2 3 53
3 4 54
4 5 55
def insertId(new_df, pos, col, start):
new_df.insert(pos, col, range(start, len(new_df) + start))
return new_df
#insert new column called s to DataFrame df in position 0 and values starts in 50
df = insertId(df, 0, 's', 50)
df = insertId(df, 2, 'new', 14)
print (df.head())
s a new b
0 50 1 14 51
1 51 2 15 52
2 52 3 16 53
3 53 4 17 54
4 54 5 18 55
关于python - 我想在具有增量值的数据框中添加两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47345132/