我使用從CSV文件填充的熊貓數據框,然後使用Bokeh將該數據框轉換爲ColumnDataSource。使用列數據源如何獲得一行的索引?
它看起來像:
dataFrame = pandas.read_csv('somefile.CSV')
source = ColumnDataSource(dataFrame)
現在,我有我的所有列,我想這樣做基於行的計算。
例如:我有三列:
1, 2, blue
2, 5, red
1, 8, yellow
現在,我要換一些相關的變量,該行中,當我通過搜索:
x, y, colour
它可能與填充源,我怎麼能做到這一點:
# how do i step through the source dictionary?
if source['colour'] == 'blue':
# how do I get the current index, which is the row number
# how do I change the x column value at the index(row) we retrieved
source['x' index] = 2
謝謝
謝謝,我發現我可以得到dataFrame.iloc [index]以及返回行!如果有人知道更快的方法來做到這一點,請讓我知道,因爲上述方法和我的方法在大型數據集上都非常慢。 – cyclops
如果您最初只需進行更改(在進入ColumnDataSource之前),那麼在pandas dataFrame中進行這些更改幾乎肯定會是最快的。你也可以這樣做:'df ['x']。loc [(df ['color'] =='blue')] = 2'。即使在大型數據集上,這應該仍然非常快。 –