これは、StackOverflowの最初の質問です。質問を明確にする方法の提案はいつでも歓迎します。petlを使用して文字列をタプルに変換する
私は、以下に示すように構成されたポイントデータのCSVを持っている:
のpython 3.5でPETLモジュールを使用してOBJECTID,CART_ID,SHAPE
1,ABC,"(1.2, -4.5)"
2,ABD,"(3.8, 9.1)"
、私は、フロートオブジェクトの二つの別々の列にSHAPEの文字列を変換しようとしています。私がpetlのドキュメントから理解したことを使用して、私は3つのステップでそれを行うことができるはずです。私はこれが信じたc = petl.unpack(b, 'SHAPE', ['LAT', 'LON']
:
- オープンCSV:
a = petl.fromcsv('file.csv')
- タプルに文字列からSHAPEを変換します
b = petl.convert(a, 'SHAPE', tuple)
- スプリット(.unpack使用して2列にタプル) CSVファイルは次のようになります。
OBJECTID,CART_ID,LAT,LON 1,ABC,1.2,-4.5 2,ABD,3.8,9.1
代わりに、.convertは、()生産:
OBJECTID,CART_ID,SHAPE 1,ABC,('(', '1', '.', '2', ',', ' ', '-', '4', '.', '5', ')')
a)は何.convert()やっている、またはb)CSVを再構築する方法上の任意のヘルプはいただければ幸いです。
ありがとうございます。
全コード:
import petl a = petl.fromcsv('file.csv') petl.look(a) b = petl.convert(a, 'SHAPE', tuple) petl.look(b) c = petl.unpack(b, 'SHAPE', ['LAT', 'LON'] petl.look(c)
'ast.literal_eval'が、それはあまり悪になるだろう:P –