[解決済み] pandasや他のPythonモジュールで特定の列を読み込む
2023-01-15 19:33:54
質問
以下のようなcsvファイルを持っています。 ウェブページ . 私はダウンロードされたファイル(csvバージョンは右上隅でダウンロードすることができます)のいくつかの列を読みたいです。
2つの列が欲しいとします。
-
59で、ヘッダが
star_name
-
60は、ヘッダーの中で
ra
.
しかし、何らかの理由でウェブページの作者が列を移動させることになることがあります。
最終的には、値が欠落する可能性があることを念頭に置いて、次のようなものを作りたいと思います。
data = #read data in a clever way
names = data['star_name']
ras = data['ra']
これで、将来またカラムが変更されたときに、名前が正しいままであれば、私のプログラムが誤動作することはないでしょう。
今まで、私は様々な方法を
csv
モジュールを使って様々な方法を試してきましたが、最近では
pandas
モジュールを使っています。どちらもうまくいきませんでした。
EDIT (2行+私のデータファイルのヘッダーを追加しました。申し訳ありませんが、非常に長いです)。
# name, mass, mass_error_min, mass_error_max, radius, radius_error_min, radius_error_max, orbital_period, orbital_period_err_min, orbital_period_err_max, semi_major_axis, semi_major_axis_error_min, semi_major_axis_error_max, eccentricity, eccentricity_error_min, eccentricity_error_max, angular_distance, inclination, inclination_error_min, inclination_error_max, tzero_tr, tzero_tr_error_min, tzero_tr_error_max, tzero_tr_sec, tzero_tr_sec_error_min, tzero_tr_sec_error_max, lambda_angle, lambda_angle_error_min, lambda_angle_error_max, impact_parameter, impact_parameter_error_min, impact_parameter_error_max, tzero_vr, tzero_vr_error_min, tzero_vr_error_max, K, K_error_min, K_error_max, temp_calculated, temp_measured, hot_point_lon, albedo, albedo_error_min, albedo_error_max, log_g, publication_status, discovered, updated, omega, omega_error_min, omega_error_max, tperi, tperi_error_min, tperi_error_max, detection_type, mass_detection_type, radius_detection_type, alternate_names, molecules, star_name, ra, dec, mag_v, mag_i, mag_j, mag_h, mag_k, star_distance, star_metallicity, star_mass, star_radius, star_sp_type, star_age, star_teff, star_detected_disc, star_magnetic_field
11 Com b,19.4,1.5,1.5,,,,326.03,0.32,0.32,1.29,0.05,0.05,0.231,0.005,0.005,0.011664,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,2008,2011-12-23,94.8,1.5,1.5,2452899.6,1.6,1.6,Radial Velocity,,,,,11 Com,185.1791667,17.7927778,4.74,,,,,110.6,-0.35,2.7,19.0,G8 III,,4742.0,,
11 UMi b,10.5,2.47,2.47,,,,516.22,3.25,3.25,1.54,0.07,0.07,0.08,0.03,0.03,0.012887,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,2009,2009-08-13,117.63,21.06,21.06,2452861.05,2.06,2.06,Radial Velocity,,,,,11 UMi,229.275,71.8238889,5.02,,,,,119.5,0.04,1.8,24.08,K4III,1.56,4340.0,,
どのように解決するのですか?
簡単な方法として
pandas
ライブラリをこのように使うことです。
import pandas as pd
fields = ['star_name', 'ra']
df = pd.read_csv('data.csv', skipinitialspace=True, usecols=fields)
# See the keys
print df.keys()
# See content in 'star_name'
print df.star_name
ここで問題になったのは
skipinitialspace
で、ヘッダの空白を削除していることです。つまり、' star_name' は 'star_name' になります。
関連
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] pipで特定のバージョンのパッケージをインストールする
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] PandasとPythonでCSVファイルを読み込むとUnicodeDecodeErrorが発生する。
-
[解決済み] Python Pandas データをトークン化するエラー
-
[解決済み】PandasでSettingWithCopyWarningに対処する方法
-
[解決済み】Pandas DataFrameのより多くの列を見るために出力表示を拡大する方法は?
-
[解決済み] Python Empty Generator 関数
-
[解決済み] virtualenvsはどこに作成するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?