我有一個這樣的資料框:
data = [[0xD8E3ED, 2043441], [0xF7F4EB, 912788],[0x000000,6169]]
df = pd.DataFrame(data, columns=['c_code', 'occurence'])
我正在嘗試遍歷 c_code 以獲取整數值。以下代碼用于獲取整數
hex_val = '0xFF9B3B'
print(int(hex_val, 0))
16751419
但是當我嘗試遍歷該列時,我遇到了一個問題。我目前正在運行它,但只是覆寫了每個值。
for i in range(len(df)):
df['value'] = int((df['c_code'].iloc[i]), 0)
理想的輸出將是一個帶有反映 c_code 值的值列的 df。下圖顯示了所需的格式,但請注意所有行的值都相同。我相信我需要附加行,但我不確定如何做到這一點
uj5u.com熱心網友回復:
我相信您可以修改列 c_code 的型別并將其分配給新列。
import pandas as pd
data = [['0xD8E3ED', 2043441], ['0xF7F4EB', 912788],['0x000000',6169]]
df = pd.DataFrame(data, columns=['c_code', 'occurence'])
df['value'] = df['c_code'].apply(int, base=16)
另外,我必須將十六進制數字作為字串,如果不是,pandas 會直接將它們轉換為 int。
我得到這個結果:
uj5u.com熱心網友回復:
您在回圈中的每個步驟將整個列分配給一個新值
df["value"] = ...
要指定一行,您需要將其更改為df["value"][i] = ...
但是,您不必遍歷 Pandas 中的每個值。
嘗試:
df["value"] = int(df["c_code"], 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/489183.html