更有效的方式我有一個數據幀df
具有列['metric_type', 'metric_value']
。對於每一行,我要確保我有名字等於'metric_type'
,併爲該列等於'metric_value'
值的列。清潔字符串列,並添加一個新列
我的一個問題是,'metric_type'
有,我想擺脫虛假的空間。
考慮數據框df
:
df = pd.DataFrame([
['a ', 1],
[' b', 2],
[' c ', 3]
], columns=['metric_type', 'metric_value'])
print(df)
metric_type metric_value
0 a 1
1 b 2
2 c 3
注意的'metric_type'
每個數據都在不同地方的空間。
我創建了一個功能使用apply
,但它需要一個可怕的很長一段時間。
def assign_metric_vals(row):
row[row['metric_type'].replace(" ", "")] = row['metric_value']
return row
當我使用它,我得到這個:
a b c metric_type metric_value
0 1.0000 nan nan a 1
1 nan 2.00 nan b 2
2 nan nan 3.00 c 3
有沒有更好的(閱讀, 「更快」)的方式來完成這個相同的任務?
'apply'本質上是緩慢的。它基本上是一個python for循環的包裝器。 –
無論如何,似乎無論你想完成什麼,都應該可以通過基本的「熊貓」任務完成。你爲什麼不描述你想要完成的事情 –
如果那麼簡單,我不會發布這個問題。如果在我正在努力完成的事情中存在誤解,請抱歉。有一個列metric_type包含我轉換爲列的值。然後,我需要將metric_value列的行分配給適當的轉換的metric_type列。 – user3002486