私はまだ初心者ですが、ExcelでCSVファイルを操作する同僚にファンダのファンダメンタルズを説明しようとしています。Python Pandas - 複数の列に姓と名を入れた新しい列を追加する
私は、例として使用したい問題を解決するための「良い」答えを見つける能力を持って壁に当たった。
私はCSVは、このようなファイルがあります:私は「StartsWithJOrK」と呼ばれるdf
に新しい列を追加したい
import pandas
df = pandas.read_csv('C:\\example.csv')
:
"Id","First","Last"
"109","Karl","Evans"
"113","Louise","Hudson"
"106","Catherine","Johnson"
と私はこのようなパイソンにインポートしています。
"Yay!"と言ってください。 lowercase-last-nameが "j"または "k"で始まる小文字の最初の名前ORの誰かのために。小文字名が "j"か "k"で始まっていない人にとっては、 "BooHiss"と言うべきです。
(それはむしろ、神経が高ぶった例だが、それは私が行う方法を知っていないか、組み合わせる方法がわからないのいずれかのものの多くのパックのように私は感じる「pythonically。」)
これを行うには、最もpythonの、最も少ないコード行の方法は何ですか?
ありがとう:
.str.lower()
のアレクサンダーの答えの使用@からヒントを取って、または:ここでは1です。私はそれが「そう簡単ではない」ので、私は理解することは、いくつかのビルディングブロックに離れて、それを取り除くことができました。あなたが気にしないなら、フォローアップの質問。のは、それが「ジョー・エヴァンス、」ない「カール・エヴァンス、」だったと私はちょうど「StartsWithJ」欄をやってみたかったとしましょう。 (それでも「最初または最後」。)その操作を行うための最も神託/簡潔な方法は、df.loc [(df.First.str.lower() 'のような第三のラインを持っているだろう。str.startswith(「J」 ))| df.Last.str.lower()。str。startswith( 'j')、 'StartsWithJ'] = 'Yay''、またはさらに簡単なアプローチがありますか?私は、質問がより簡単になったときに、パンダのソリューションが頻繁に**完全に**変化することに気付きました。 –
私にはうまく見えますが、誰かがもっと簡単な方法を見つけるでしょう。この場合、 'df.First.str [0] .str.lower()== 'k'' – Alexander