【问题标题】:Fixing greek letters in dataframe - Python 2.7修复数据框中的希腊字母 - Python 2.7
【发布时间】:2021-08-06 21:03:03
【问题描述】:

我正在使用 python 2.7,并且我有一个带有希腊字母的数据框,如下所示:

units = ['Ab_alpha_cd', 'XY_beta_zz', 'Ef_gamma_gh']
descriptions = ['Name1 (Ab_alpha_cd): description_1', 'Name2 (XY_beta_zz): description_2', 'Name3 (Ef_gamma_gh): description_3'
df = pd.dataframe
df['units'] = units
df['descriptions'] = descriptions

我需要将描述栏中的'_greek_' 更改为正确的希腊字母。 我尝试了几种方法:

#first try:
for i in range (0, len(df)):
    df.loc[i,'descriptions'].replace('_alfa_','\u03B1').replace('_beta_','\u03B2').replace('_gamma_','\u03B3')

#second try:
for i in range (0, len(df)):
    df.loc[i,'descriptions'].replace('_alfa_',unichr(945)).replace('_beta_',unichr(946)).replace('_gamma_',unichr(947))

#thrid try
for i in range (0, len(df)):
    df.loc[i,'descriptions'].replace('_alfa_','α').replace('_beta_','β').replace('_gamma_','γ')

#fourth try
for i in range (0, len(df)):
    df.loc[i,'descriptions'].replace('_alfa_','α'.encode('utf-8')).replace('_beta_','β'.encode('utf-8')).replace('_gamma_','γ'.encode('utf-8'))

但没有任何效果。当我打电话给df.head() 时,希腊字母不显示。当我尝试将 df 写入 csv 文件时,它们也不会显示,即使使用 utf-8 编码也是如此。

我需要最终结果是一个字符串更正的列表。

我能做什么?

【问题讨论】:

标签: python python-2.7 utf-8


【解决方案1】:

您可以在documentation阅读以下内容:

字典可用于指定不同的替换值 不同的现有值。例如,{'a': 'b', 'y': 'z'} 替换 值“a”与“b”和“y”与“z”。以这种方式使用字典 value 参数应该是 None。

样本数据:

import pandas as pd
df = pd.DataFrame({'A': ['Name1 (Ab_alpha_cd): description_1', 'Name2 (XY_beta_zz): description_2', 'Name3 (Ef_gamma_gh): description_3']})

代码:

df['A'].replace({'_alpha_':'α', '_beta_':'β', '_gamma_':'γ'}, regex=True)

输出:

                              A
0  Name1 (Abαcd): description_1
1  Name2 (XYβzz): description_2
2  Name3 (Efγgh): description_3

【讨论】:

  • 从这个解决方案中,从这本词典获得的列表是否会保留更正后的希腊字母?抱歉,我忘了在我的问题中添加我需要的最终结果是一个字符串列表。刚刚编辑过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 2021-07-16
  • 2021-07-02
  • 1970-01-01
  • 2017-07-22
  • 2011-08-28
  • 1970-01-01
相关资源
最近更新 更多