python - 如何在数据框中大写首字母缩写词
问题描述
我有一个数据框df
,其中包含我需要整齐格式化的公司名称。这些名称已经在标题中:
Company Name
0 Visa Inc
1 Msci Inc
2 Coca Cola Inc
3 Pnc Bank
4 Aig Corp
5 Td Ameritrade
6 Uber Inc
7 Costco Inc
8 New York Times
由于许多公司使用首字母缩略词或缩写(行、、、、、),1
因此我只希望这些公司名称中的第一个字符串为大写,如下所示:3
4
5
Company Name
0 Visa Inc
1 MSCI Inc
2 Coca Cola Inc
3 PNC Bank
4 AIG Corp
5 TD Ameritrade
6 Uber Inc
7 Costco Inc
8 New York Times
我知道我不能得到 100% 准确的替换,但我相信我可以通过只大写第一个字符串来接近,如果:
- 不超过 4 个字符
- 并且第一个字符串不是字典中的单词
我怎样才能做到这一点:df['Company Name'] = df['Company Name'].replace()
?
解决方案
因此,您实际上可以使用附魔模块来确定它是否是字典单词。鉴于你仍然会有一些关闭的结果 IE 优步。
这是我想出的代码,对于变量的可怕名称以及其他的东西感到抱歉。
import enchant
import pandas as pd
def main():
d = enchant.Dict("en_US")
listofcompanys = ['Msci Inc',
'Coca Cola Inc',
'Pnc Bank',
'Aig Corp',
'Td Ameritrade',
'Uber Inc',
'Costco Inc',
'New York Times']
dataframe = pd.DataFrame(listofcompanys, columns=['Company Name'])
for index, name in dataframe.iterrows():
first_word = name['Company Name'].split()
is_word = d.check(first_word[0])
if not is_word:
name['Company Name'] = first_word[0].upper() + ' ' + first_word[1]
print(dataframe)
if __name__ == '__main__':
main()
输出是:
Company Name
0 MSCI Inc
1 Coca Cola Inc
2 PNC Bank
3 AIG Corp
4 TD Ameritrade
5 UBER Inc
6 Costco Inc
7 New York Times
推荐阅读
- php - 为什么我的脚本可以工作,但它在控制台中显示语法错误?
- html - 将按钮添加到 CSS 图像?
- vue.js - 如何使用Vuetifyjs更改日历中过去事件的颜色
- c# - 使用 Angular 和 .net core api 设置 DocuSign 电子签名
- laravel - laravel 资源 url 取决于模型?
- bash - bash 变量来存储目录名和空格
- javascript - Change class child property using javascript
- database - Handle JMS commit failure after JDBC commit is success
- c++ - How many implicit conversions can C++ do to convert one user-defined type to another when initializing class types?
- r - 使用 R,如何获得两个字符串的“差异”?