[英]add a column to data frame using pandas concatenation
我有“train_df”數據框,其中:
print(train_df.shape)
返回 (997, 600)。
現在我想將一列連接到此數據框,其中:
print(len(local_df["target"]))
返回 997。
所以看起來尺寸一切正常。
但問題是:
final_df = pd.concat([train_df, local_df["target"]], axis=1)
print(final_df.shape)
返回 (1000, 601)。 而它應該是 (997, 601)。
你知道問題出在哪里嗎?
我認為問題出在不同的索引值上,所以解決方案是通過reset_index
和參數drop=True
創建相同的:
final_df = pd.concat([train_df.reset_index(drop=True),
local_df["target"].reset_index(drop=True)], axis=1)
print(final_df.shape)
或者通過train_df.index
設置local_df
的train_df.index
:
final_df = pd.concat([train_df,
local_df["target"].set_index(train_df.index)], axis=1)
print(final_df.shape)
您可以assign
numpy 數組assign
為新列。
final_df = train_df.assign(target=local_df["target"].values)
對於 >= 0.24 的熊貓,
final_df = train_df.assign(target=local_df["target"].to_numpy())
加盟怎么樣?:
import pandas as pd
df=pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})
df2=pd.DataFrame({'c':[232,543,562]})
print(df.reset_index(drop=True).join(df2.reset_index(drop=True), how='left'))
輸出:
a b c
0 1 4 232
1 2 5 543
2 3 6 562
不確定這是否最有效
從另一個具有此列y
的 dataframe df2
向 dataframe df
添加一個新列y
df = df.assign(y=df2["y"].reset_index(drop=True))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.