futui 发表于 2023-5-5 10:05:58

请大师帮忙把含有千分号的字符串数字转换为纯数字

本帖最后由 futui 于 2023-5-5 10:20 编辑

data = [['银置混裕主题合(8886012)', '8,113.25'], ['裕主题合(986012)', '-10,833.54'], ]
df = pd.DataFrame(data,columns=['A','G'])
df

请大师帮忙,谢谢
1,已解决:df['G'] = df['G'].str.replace(',', '').astype(float)
把含有千分号的字符串数字,转换为纯数字,如'8,113.25'转化为 8113.25



2,把A列的括号及其数字删除
裕主题合(986012)>>>>>>>裕主题合

futui 发表于 2023-5-5 10:23:08

df['A'] = df['A'].str.replace(r'\(.*\)', '')

isdkz 发表于 2023-5-5 11:30:00

您好!您已经成功地解决了第一个问题,将带有千分号的字符串数字转换为纯数字。对于第二个问题,您可以使用Pandas中的 str.replace() 函数配合正则表达式来删除A列的括号及其数字。这里是一个示例:

import pandas as pd

data = [['银置混裕主题合(8886012)', '8,113.25'], ['裕主题合(986012)', '-10,833.54'], ]
df = pd.DataFrame(data, columns=['A', 'G'])

# 将带有千分号的字符串数字转换为纯数字
df['G'] = df['G'].str.replace(',', '').astype(float)

# 删除A列的括号及其数字
df['A'] = df['A'].str.replace(r'\(\d+\)', '', regex=True)

print(df)


这将输出如下DataFrame:

         A         G
0银置混裕主题合   8113.25
1   裕主题合 -10833.54


希望这对您有帮助!如果您有其他问题,请随时提问。
页: [1]
查看完整版本: 请大师帮忙把含有千分号的字符串数字转换为纯数字