Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSV、Python中的字符串大小写操作_Python_Python 2.7_Csv_Pandas_Capitalization - Fatal编程技术网

CSV、Python中的字符串大小写操作

CSV、Python中的字符串大小写操作,python,python-2.7,csv,pandas,capitalization,Python,Python 2.7,Csv,Pandas,Capitalization,我希望尽可能简单地解决CSV文件的案例问题。我已经有熊猫进口,如果这简化了代码 所以我想换一个 Name City State FOO BAR los angeles ca guy's naME PHILADELPHIA Pa 带(注意') 首先,您需要学习一些python规则 然后,您必须安装ipython,并使用它而不是python。 然后,您必须运行ipython,并尝试一些真正基本的问题 将csv文件读取到D

我希望尽可能简单地解决CSV文件的案例问题。我已经有熊猫进口,如果这简化了代码

所以我想换一个

 Name          City            State
 FOO BAR       los angeles     ca
 guy's naME    PHILADELPHIA    Pa
带(注意')


首先,您需要学习一些python规则 然后,您必须安装ipython,并使用它而不是python。 然后,您必须运行ipython,并尝试一些真正基本的问题

将csv文件读取到DataFrame对象(谷歌it或学习) 然后,如果要使用大写字母序列(状态):

然后,如果要将序列(城市)小写和大写

如果你想大写每个单词,你必须用谷歌搜索


然后,您必须使用新更改的数据框保存csv文件。

这将实现您想要的功能,减去所有大写状态和大小写,例如(男孩的姓名)和特殊字符:

with open("output.txt",'w') as O:
    with open("input.txt") as I:
        for line in I:
            O.write(line.title())
之前:

Name          City            State
FOO BAR       los angeles     ca
guy's naME    PHILADELPHIA    Pa
之后:

Name          City            State
Foo Bar       Los Angeles     Ca
Guy'S Name    Philadelphia    Pa

这是硬编码的,以匹配您的示例文件,但应该执行您想要的操作:

import csv
import sys
import string

reader = csv.reader(sys.stdin, delimiter='\t')
writer = csv.writer(sys.stdout, delimiter='\t')

# write the header as-is
writer.writerow(reader.next())

for row in reader:
    row[0] = string.capwords(row[0])
    row[1] = string.capwords(row[1])
    row[2] = row[2].upper()
    writer.writerow(row)
用法示例:

cat test.csv | python fix_case.py
Name    City    State
Foo Bar Los Angeles CA
Guy's Name  Philadelphia    PA

有人想告诉我该在我的问题中添加什么来确保表格的语法突出显示吗?“Google或learn”是一种通用的态度,适用于所有论坛,尤其是问答式论坛。然而,我来这里显然是有原因的。“投票否决需要125个名声。”这正是我想要的。我只需要了解如何将字符串操作应用于数据帧/系列,但我想这和字符串一样简单。对于第[0]行-第[0]行,我认为capwords()应该可以同时解决几个问题!我根据你的建议编辑了我的答案,使用了大写字母,这解决了我遗漏的问题,在盖伊的名字中大写“s”。谢谢
Name          City            State
Foo Bar       Los Angeles     Ca
Guy'S Name    Philadelphia    Pa
import csv
import sys
import string

reader = csv.reader(sys.stdin, delimiter='\t')
writer = csv.writer(sys.stdout, delimiter='\t')

# write the header as-is
writer.writerow(reader.next())

for row in reader:
    row[0] = string.capwords(row[0])
    row[1] = string.capwords(row[1])
    row[2] = row[2].upper()
    writer.writerow(row)
cat test.csv | python fix_case.py
Name    City    State
Foo Bar Los Angeles CA
Guy's Name  Philadelphia    PA