2016-05-03 16 views
1

私はPythonには非常に新しく、この問題を解決するためにgoogleとstackoverflowを検索していますが、これは単なる構文上の問題です。パンダデータフレームに新しい列を作成

私はいくつかの列を持つデータフレームを持っています。

df.assign(new = lambda x: x.column5[0:2],) 

これは作成されます。

import pandas as pd 
df = pd.read_csv("C:/path/file.csv") 

私のcsvファイルは、5列と〜100kの行 私は単に私が試した5

列の最初の2桁の部分文字列をしたいを持っています新しいフィールドを作成し、最初の2行に列5の完全な値を設定し、残りの部分をNaNにします。

df['new'] = df['column5'].str[0:2] 
df.map(lambda df['column5']: [:2]) 

私はテーブルから既存の列の最初の2桁を使用して新しい列を作成する方法の損失で単純だが、パンダ経由で読み:

これらの試みは、私の構文errosを与えます。

これがSASだったら、私は時間前に行われていると思いますが、私はあなたの助けが

+1

あなたならばそれは参考になりますエラースタックを提供します... – MaxU

答えて

1

を高く評価しているように、パイソンの外出を作るしようとしている私はあなたのcolumn5列がint * /フロート*のDTYPEのだと思い、そう は、最初の文字列に変換してみてください。

df['new'] = df['column5'].astype(str).str[:2] 

CSVファイルを読み込むときに、あなたが明示的に列の型を指定することができます。

df = pd.read_csv('file_name.csv', ..., dtype={'column5': object}) 
+0

それはそれを修正しました。数字で表現されたコードを扱うときに、pandasのread.csvにint型ではなく文字列型のフィールドを読み込ませることができるかどうかを確認する必要があります。 –

+0

更新いただきありがとうございます。 CourseraのU MichからのEverybodyシリーズのPythonはPandasをカバーしていません:( –

+0

@RustyCoder、あなたも大歓迎です。 – MaxU

関連する問題