簡體   English   中英

使用python將字符串轉換為數據框中的數字數據

[英]convert string into numeric data in the dataframe using python

如果我們在數據框中有字段

A12
A13
A13
A12
A14

我們需要將此字符串轉換為

A12   1
A13   2
A13   2
A12   1
A14   3

嘗試這個:

arr=dataframe['old_col'].unique()
dataframe['new_col']=dataframe['old_col'].apply(lambda x: arr.index(x))

你可以使用字典

counts = {}
for s in strings:
    assigned_number = counts.get( s, len(counts) + 1 )
    counts[s] = assigned_number

看起來 OP 想要從第二個數字中減去第一個數字並得到結果。 你可以這樣做:

my_test = ['A12', 'A13', 'A13', 'A12', 'A14']

def numberMyData(data):
    try:
        nums = re.match('\w(\d)(\d)', data).groups()
        nums = nums[1] - nums[0]
        return (data, nums)
    except:
        return (data, 0)

my_new_data = list(map(numberMyData, my_test))

然后你有一個列表,看起來像這樣:

[('A12', 1), ('A13', 2), ('A13', 2), ('A12', 1), ('A14', 3)]

如果你想以你的問題的格式打印它,你可以使用這樣的東西:

for data in my_new_data:
    print('   '.join([data[0], str(data[1])]))

用 3 個空格連接數據。 輸出如下所示:

A12   1
A13   2
A13   2
A12   1
A14   3

我們假設您的數據框是“df”,並且該字段的標題是“代碼”。 您可以將其轉換為數值:

def convert_to_num(code):
    if code == 'A12':
        return 1
    elif code == 'A13':
        return 2
    else:
        return 3

df['New_Code'] = df['Code'].apply(convert_to_num)
        

暫無
暫無

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

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