2016-09-10 8 views
1

これは非常に簡単なことだと確信していますが、私は問題があるようです! (私もこれにかなり新しいです。)緯度/経度ペアのデータフレームから丸括弧を削除する

私は緯度経度座標を含むデータフレームを持っている:

LatLon 
0 (49.766795012580374, -7.556440128791576) 
1 (49.766843444728075, -7.556439417755133) 
2 (49.766843444728075, -7.556439417755133) 

私は丸括弧/括弧を削除したいと思いますが、私はちょうどそれを動作することはできません。

私は

AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas

のようなエラーを得続けるしかし、私はそれを修正するために何をすべきかわかりません。

型はオブジェクトなので、私はそれを文字列に変換する必要があると思いますか?

私は.info()を行う場合は、次の

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 22899 entries, 0 to 22898 
Data columns (total 1 columns): 
LatLon 22899 non-null object 
dtypes: object(1) 

df.dtypes:更新された質問で

LatLon object 
dtype: object 
+0

括弧を削除することを意味しますか?あなたはリストの内容を印刷せずに、そのリストの内容を印刷したいのですか?または、ファイルに保存することができますか?これらのタプルをすべてメモリ上に保持するには、かっこやかっこが必要です。 – RafaelC

+0

この質問を削除し、新しいものを書き、 'pandas'(タグ)を使って作業していることを明確にします。 'ipython'タグをスキップします。あなたが何をしようとしているのかを伝える(印刷、文字列、ファイルへの書き込みなど)。どのようにデータフレームを作成したかを示すことができますので、再作成して表示する方法を示すことができます。データフレーム自体から文字を削除することと、それらの文字なしでデータを表示することには大きな違いがあることを覚えておいてください。 – hpaulj

+0

私は質問を削除しようとしていたが、それは私を許さなかった。私はいくつかの詳細を追加しました。はい、ブラケットを外したいだけです。 – hsquared

答えて

1

は、ここで更新答えです。

我々はタプルのリストがあるとします。

>>> li 
[(49.766795012580374, -7.556440128791576), (49.766843444728075, -7.556439417755133), (49.766843444728075, -7.556439417755133)] 

私たちは、直接(基本的に行列やリストのリストである、)データフレームを作成することができます。

>>> df1=pd.DataFrame(li) 
>>> df1 
      0   1 
0 49.766795 -7.556440 
1 49.766843 -7.556439 
2 49.766843 -7.556439 
>>> df1.info() 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 3 entries, 0 to 2 
Data columns (total 2 columns): 
0 3 non-null float64 
1 3 non-null float64 
dtypes: float64(2) 
memory usage: 72.0 bytes 

お知らせこれはあります浮動体の2列のデータフレーム。

しかし、タプルのリストのリストである、今、私たちはこのリストを持っていると想像:

>>> li2 
[[(49.766795012580374, -7.556440128791576)], [(49.766843444728075, -7.556439417755133)], [(49.766843444728075, -7.556439417755133)]] 

ここでデータフレームを作成した場合、あなたは一例で持っているものを得る:

>>> df2=pd.DataFrame(li2) 
>>> df2 
           0 
0 (49.7667950126, -7.55644012879) 
1 (49.7668434447, -7.55643941776) 
2 (49.7668434447, -7.55643941776) 
>>> df2.info() 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 3 entries, 0 to 2 
Data columns (total 1 columns): 
0 3 non-null object 
dtypes: object(1) 

タプルの1列のデータフレームです。

私はあなたの問題がデータフレームの最初の作成にあると推測しています。リストまたはタプルのリストのリストの代わりに、元のデータにタプルのリスト(またはタプルのタプルのリストなど)があります。

修正は(私が正しい場合)です。ソースリストを1つのレベルで平坦化します。

>>> pd.DataFrame(t for sl in li2 for t in sl) 
      0   1 
0 49.766795 -7.556440 
1 49.766843 -7.556439 
2 49.766843 -7.556439 
+0

あなたの答えをありがとう、謝罪リストからデータフレームへの質問を少し変えました! – hsquared