簡體   English   中英

如何在 pd.Dataframe 的每列值內進行操作?

[英]How to make operations within each columns value of a pd.Dataframe?

我有一個pandas Dataframe ,我想在為單元格內的每個值進行以下數學運算后將結果寫入列'final_data['130 + 71444']'

final = pd.read_csv(path, header=0, parse_dates=True, index_col="Tagname")
final_data = pd.DataFrame(final)

在此處輸入圖片說明


編輯:我試過:

final_data['130 + 71444'] = (final_data['130.c'] + final_data['7144.c'])/final_data['c']

但是顯示以下錯誤:

TypeError: unsupported operand type(s) for /: 'str' and 'str'

我該怎么做?

用:

final_data['130 + 71444'] = (final_data['130.c'].astype(float) + final_data['7144.c'].astype(float))/final_data['c'].astype(float)

如果上面的代碼不起作用,因為某些非數字值使用to_numericerriors='coerce'將這些值轉換為缺失值:

final_data['130 + 71444'] = (pd.to_numeric(final_data['130.c'], errors='coerce') + pd.to_numeric(final_data['7144.c'], errors='coerce') )/pd.to_numeric(final_data['c'], errors='coerce') 

這很容易。 就像您定義的那樣:編輯首先,您必須更改列的 dtype。 我在這里使用浮動。

final_data['130.c'] = final_data['130.c'].astype('float32')
final_data['7144.c'] = final_data['7144.c'].astype('float32')
final_data['c'] = final_data[c'].astype('float32')


final_data['130 + 71444'] = (final_data['130.c'] + final_data['7144.c'])/final_data['c']

這是可能的,因為您的數據框中有 numpy 數組作為列。 另請參閱pandasnumpy的文檔。

暫無
暫無

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

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