包含混合字母数字字符的数据的数据框排序

问题描述 投票:0回答:1

问题: 尝试对下面的 Excel 数据数据框进行排序(请注意,这是一个多行的小样本集,其信息范围可以从 A#-Z# 后跟 AA# 等,(就像 Excel 工作表的完成方式一样)(#-范围从 0 到 100):

输入

"Pin No": ['J11', 'J1', 'A2', 'A11', 'A1', 'AA2', 'AB2'],
        "Pin Name": ['pin1', 'pin2', 'pin3', 'pin4', 'pin5', 'pin6', 'pin7']

输出要求:

Pin No Pin Name
  A1     pin5
  A2     pin3
 A11     pin4
  J1     pin2
 J11     pin1
 AA2     pin6
 AB2     pin7

尝试的代码:

import pandas as pd
import re

# Initial DataFrame
def main():
    df = pd.DataFrame({
        "Pin No": ['J11', 'J1', 'A2', 'A11', 'A1', 'AA2', 'AB2'],
        "Pin Name": ['pin1', 'pin2', 'pin3', 'pin4', 'pin5', 'pin6', 'pin7']
    })
    # Apply the split_pin function to the 'Pin No' column
    df['Pin No Split'] = df['Pin No'].apply(split_pin)
        
    # Sort based on alphabetic part first, then numeric part
    df_sorted = df.sort_values(by=['Pin No Split'], key=lambda x: x.apply(lambda y: (y[0], y[1]))).drop(columns=['Pin No Split']).reset_index(drop=True)
    
    # Display the sorted DataFrame
    print(df_sorted)
    # Function to split Pin No into alphabetic and numeric components
def split_pin(pin):
    # Regex to split Pin No into alphabetic and numeric parts
    match = re.match(r"([A-Za-z]+)(\d+)", pin)
    print(match)
    if match:
        alphabetic_part = match.group(1)
        print(alphabetic_part)
        numeric_part = int(match.group(2))  # Convert numeric part to integer for sorting
        print(numeric_part)
        return (alphabetic_part, numeric_part)
    else:
        return (pin, 0)

但是我无法正确排序。我得到以下输出,不确定我的方法的哪一部分是错误的:

Pin No Pin Name
0     A1     pin5
1     A2     pin3
2    A11     pin4
3    AA2     pin6
4    AB2     pin7
5     J1     pin2
6    J11     pin
python pandas dataframe
1个回答
0
投票

বাংলাদেশেরকৃষি বাংলাদেশকৃষিপ্রধানদেশ। এদেশে শতকরা ৭৫ ভাগ লোক গ্রামে বাস করে। বাংলাদেশের গ্রাম এলাকায় ৫৯.৮৪% লোকের এবং শহর এলাকায় ১০.৮১% লোকের কৃষিখামার রয়েছে। মোট দেশজ উৎপাদন তথা জিডিপিতে কৃষিখাতের অবদান অবদান ১৯.১% এবং কৃষিখাতের মাধ্যমে ৪৮.১% মানুষের কর্মসং স্থানতৈরিহচ্ছে। ধান,পাট,তুলা,আখ,ফুলফুলরেশমগুটির,মাছ,সবজি,সবজি,পশুসম্পদ,মাটির,মাটির,বীজ,বীজ,বীজবীজউন্নয়নবিতরণবিতরণইত্যাদিইত্যাদিএএদেশেরকৃষি 了解更多

© www.soinside.com 2019 - 2024. All rights reserved.