簡體   English   中英

Pandas - 將特定 iloc 的值添加到新的數據框列中

[英]Pandas - add value at specific iloc into new dataframe column

我有一個包含大量列的大型數據框。

對於數據幀中的每一行/索引,我執行一些操作,讀取一些輔助數據等並獲得一個新值。 有沒有辦法將該新值添加到正確行/索引處的新列中?

我可以使用 .assign 添加一個新列,但是當我遍歷行並且一次只生成要添加一個值的數據時(生成它非常復雜)。 當它生成時,我想立即將它添加到數據框中,而不是等到我生成了整個系列。

這不起作用並給出一個關鍵錯誤:

df['new_column_name'].iloc[this_row]=value

我需要先初始化列嗎?

僅使用行號創建和填充新列有兩個步驟......(在這種方法中不使用iloc

首先,通過行號獲取行索引

rowIndex = df.index[someRowNumber]

然后,使用帶有loc函數的行索引來引用特定行並添加新列/值

df.loc[rowIndex, 'New Column Title'] = "some value"

這兩個步驟可以合並為一行,如下所示

df.loc[df.index[someRowNumber], 'New Column Title'] = "some value"

如果你有一個像

import pandas as pd
df = pd.DataFrame(data={'X': [1.5, 6.777, 2.444, pd.np.NaN], 'Y': [1.111, pd.np.NaN, 8.77, pd.np.NaN], 'Z': [5.0, 2.333, 10, 6.6666]})

除了 iloc,您可以使用.loc與行索引和列名,如df.loc[row_indexer,column_indexer]=value

df.loc[[0,3],'Z'] = 3

輸出:

X      Y       Z
0  1.500  1.111   3.000
1  6.777    NaN   2.333
2  2.444  8.770  10.000
3    NaN    NaN   3.000

如果要向新列中的某些行添加值,根據數據框其他單元格中的值,您可以這樣做:

import pandas as pd
df = pd.DataFrame(data={"A":[1,1,2,2], "B":[1,2,3,4]})

根據 cloumn "A" 中的值在新列中添加值:

df.loc[df.A == 2, "C"] = 100

如果列“A”為 2,這將創建列“C”並將值 100 添加到它。

輸出:

   A  B  C
0  1  1  NaN
1  1  2  NaN
2  2  3  100
3  2  4  100

沒有必要先初始化列。

您可以只使用內置在函數 DataFrame.at 中的熊貓

您可以選擇幾個索引列表或單個索引和列

df.at[4, 'B'] = 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM