我想盡可能簡單地修復我的CSV文件的案例問題。如果簡化了代碼,我已經導入了熊貓。CSVs,Python中的字符串大小寫操作
所以我想替換
Name City State
FOO BAR los angeles ca
guy's naME PHILADELPHIA Pa
隨着(注意「)
Name City State
Foo Bar Los Angeles CA
Guy's Name Philadelpha PA
我想盡可能簡單地修復我的CSV文件的案例問題。如果簡化了代碼,我已經導入了熊貓。CSVs,Python中的字符串大小寫操作
所以我想替換
Name City State
FOO BAR los angeles ca
guy's naME PHILADELPHIA Pa
隨着(注意「)
Name City State
Foo Bar Los Angeles CA
Guy's Name Philadelpha 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.csv
Name City State
Foo Bar Los Angeles CA
Guy's Name Philadelphia PA
適合我想要的東西。我只需要了解如何將字符串操作應用於數據框/系列,但我想這和字符串一樣簡單。對於行[0] - 行[0] .capwords()應該一次解決幾個問題,我希望! – Xodarap777
我編輯我的答案,根據您的建議使用capwords,這解決了我錯過了在Guy's Name中大寫's'的問題。謝謝! –
首先,你需要學習一些Python的規則 然後,您必須安裝IPython中,並用它來代替python。 然後,你必須運行ipython,並嘗試一些真正的基本問題。
讀取CSV文件數據框對象(谷歌,或學習) 然後,如果你想大寫字母系列(州):
s1 = pd.core.series.Series(['foo', 'bar'])
s1 = s1.apply(lambda x: x.upper())
s1
然後,如果你想爲小寫和大寫系列(市)
s2 = pd.core.series.Series(['FOO', 'fOo'])
s2 = s2.apply(lambda x: x.lower().capitalize())
s2
如果你想大寫每個單詞,你必須爲它的谷歌。
然後你必須爲你保存csv文件與你新改變的DataFrame。
「Google或學習」是一種適用於所有論壇的通用態度,尤其是問答式論壇。但是,我明顯在這裏有一個原因。 「投票下降需要125點聲望。」 – Xodarap777
這會做你想要什麼減去與特殊字符的所有資本的狀態和情況下,像(傢伙的名字):
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
而不會有人要告訴我,我的問題放什麼,以確保正確的語法高亮的表? – Xodarap777