タグ付けされた質問 「pandas」

Pandasは、データの操作と分析のためのPythonライブラリです。たとえば、データフレーム、多次元時系列、統計、実験科学の結果、計量経済学、金融などでよく見られる断面データセットです。Pandasは、Pythonの主要なデータサイエンスライブラリの1つです。

10
パンダは列の平均/平均を取得します
パンダの列の平均または平均を取得できません。Aにはデータフレームがあります。以下で試したもののどちらも、列の平均を与えませんweight >>> allDF ID birthyear weight 0 619040 1962 0.1231231 1 600161 1963 0.981742 2 25602033 1963 1.3123124 3 624870 1987 0.94212 次は、1つではなく複数の値を返します。 allDF[['weight']].mean(axis=1) これもそうです: allDF.groupby('weight').mean()
155 python  pandas 

3
パンダのマルチインデックスを列に変える
2つのインデックスレベルのデータフレームがあります。 value Trial measurement 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34 これに変えたいのは: Trial measurement value 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34 これを行うにはどうすればよいですか? ここで説明されているようにデータを集計したいので、これが必要ですが、インデックスとして使用されている場合、そのような列を選択することはできません。


5
キーでパンダのグループ化データフレームにアクセスする方法
キーでgroupbyオブジェクトの対応するgroupbyデータフレームにアクセスするにはどうすればよいですか? 次のgroupbyを使用します。 rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar'] * 3, 'B': rand.randn(6), 'C': rand.randint(0, 20, 6)}) gb = df.groupby(['A']) 反復してキーとグループを取得できます。 In [11]: for k, gp in gb: print 'key=' + str(k) print gp key=bar A B C 1 bar -0.611756 18 3 bar -1.072969 10 5 bar -2.301539 …

10
パンダシリーズで要素のインデックスを検索する
これは非常に基本的な質問であることはわかっていますが、何らかの理由で回答が見つかりません。python pandasでシリーズの特定の要素のインデックスを取得するにはどうすればよいですか?(最初の発生で十分です) つまり、次のようなものを希望します。 import pandas as pd myseries = pd.Series([1,4,0,7,5], index=[0,1,2,3,4]) print myseries.find(7) # should output 3 確かに、そのようなメソッドをループで定義することは可能です: def find(s, el): for i in s.index: if s[i] == el: return i return None print find(myseries, 7) しかし、もっと良い方法があるはずだと思います。ある?
154 python  pandas 

7
パンダ:指定された列のDataFrame行の合計
次のDataFrameがあります。 In [1]: import pandas as pd df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]}) df Out [1]: a b c d 0 1 2 dd 5 1 2 3 ee 9 2 3 4 ff 1 私は、列を追加したい'e'列の合計である'a'、'b'と'd'。 フォーラムを行き来して、私はこのようなものがうまくいくと思いました: df['e'] = df[['a','b','d']].map(sum) しかし、そうではありませんでした。 列のリスト['a','b','d']とdf入力として適切な操作を知りたいのですが。
153 python  pandas  dataframe  sum 

5
パンダのDataFrameの「無名:0」列を取り除く方法は?
csvからdfを読み取るときに、という名前の不要なインデックスのような列が表示される場合がありunnamed:0ます。 file.csv ,A,B,C 0,1,2,3 1,4,5,6 2,7,8,9 CSVは次のように読み込まれます。 pd.read_csv('file.csv') Unnamed: 0 A B C 0 0 1 2 3 1 1 4 5 6 2 2 7 8 9 これは非常に迷惑です!これを取り除く方法について誰かが考えを持っていますか?
152 python  pandas  csv  dataframe 

3
Pandasでのブールインデックスの論理演算子
Pandasでブールインデックスを使用しています。問題は、ステートメントがなぜであるかです: a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)] 正常に動作しますが a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)] エラーで終了しますか? 例: a=pd.DataFrame({'x':[1,1],'y':[10,20]}) In: a[(a['x']==1)&(a['y']==10)] Out: x y 0 1 10 In: a[(a['x']==1) and (a['y']==10)] Out: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

8
パンダは日付を自動的に認識できますか?
今日、私は、データファイル(たとえば)からデータを読み取るときに、パンダが値のタイプを認識できるという事実に積極的に驚きました。 df = pandas.read_csv('test.dat', delimiter=r"\s+", names=['col1','col2','col3']) たとえば、次の方法で確認できます。 for i, r in df.iterrows(): print type(r['col1']), type(r['col2']), type(r['col3']) 特に整数、浮動小数点数および文字列は正しく認識されました。しかし、次の形式の日付を持つ列があります2013-6-4。これらの日付は文字列として認識されました(pythonの日付オブジェクトではありません)。認識された日付までパンダを「学習」する方法はありますか?
151 python  date  types  dataframe  pandas 

3
パンダは列名のみで空のDataFrameを作成します
正常に機能する動的DataFrameがありますが、DataFrameに追加するデータがない場合、エラーが発生します。したがって、列名のみで空のDataFrameを作成するソリューションが必要です。 今のところ、私はこのようなものを持っています: df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted. PS:列名が引き続きDataFrameに表示されることが重要です。 しかし、このように使用すると、結果としてそのようなものが得られます。 Index([], dtype='object') Empty DataFrame 「Empty DataFrame」の部分は良いです!しかし、インデックスの代わりに、列を表示する必要があります。 編集: 私が見つけた重要なこと:このDataFrameをJinja2を使用してPDFに変換しているため、最初に次のようにHTMLに出力するメソッドを呼び出します。 df.to_html() これは、カラムが失われる場所だと思います。 Edit2:一般的に、私は次の例に従いました:http ://pbpython.com/pdf-reports.html 。CSSもリンクからのものです。これが、データフレームをPDFに送信するために行うことです。 env = Environment(loader=FileSystemLoader('.')) template = env.get_template("pdf_report_template.html") template_vars = {"my_dataframe": df.to_html()} html_out = template.render(template_vars) HTML(string=html_out).write_pdf("my_pdf.pdf", stylesheets=["pdf_report_style.css"]) Edit3: 作成直後にデータフレームを印刷すると、次のようになります。 [0 rows x 9 …
151 python  pandas  dataframe 

12
パンダの空白値(空白)をNaNで置き換える
空白(任意の量)を含むPandasデータフレーム内のすべての値を検索し、それらの値をNaNで置き換えたい。 これを改善する方法はありますか? 基本的に私はこれを変えたいです: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz 2000-01-05 -0.222552 4 2000-01-06 -1.176781 qux これに: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz NaN 2000-01-05 -0.222552 NaN …
150 python  pandas  dataframe 

6
複数のフィルターをpandas DataFrameまたはSeriesに適用する効率的な方法
ユーザーがPandas DataFrameまたはSeriesオブジェクトにいくつかのフィルターを適用したいというシナリオがあります。基本的に、実行時にユーザーが指定した一連のフィルタリング(比較操作)を効率的にチェーン化したいと考えています。 フィルターは付加的である必要があります(別名を適用すると結果が絞り込まれます)。 私は現在使用してreindex()いますが、これにより毎回新しいオブジェクトが作成され、基になるデータがコピーされます(ドキュメントを正しく理解している場合)。そのため、大きなSeriesまたはDataFrameをフィルタリングする場合、これは非常に非効率的です。 私が使用していることを考えているapply()、map()または類似した何かが良いかもしれません。私はパンダにかなり慣れていないので、すべてに頭を包み込もうとしています。 TL; DR 次の形式のディクショナリを取得して、各操作を特定のSeriesオブジェクトに適用し、「フィルター処理された」Seriesオブジェクトを返します。 relops = {'>=': [1], '<=': [1]} 長い例 私が現在持っているものの例から始めて、単一のSeriesオブジェクトをフィルタリングするだけです。以下は私が現在使用している関数です: def apply_relops(series, relops): """ Pass dictionary of relational operators to perform on given series object """ for op, vals in relops.iteritems(): op_func = ops[op] for val in vals: filtered = op_func(series, val) series = …
148 python  algorithm  pandas 

14
パンダとグループの合計の割合
これは明らかに単純ですが、派手な初心者として私は行き詰まっています。 そのオフィスのState、Office ID、およびSalesの3つの列を含むCSVファイルがあります。 特定の州のオフィスごとの売上のパーセンテージを計算したい(各州のパーセンテージの合計が100%である)。 df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3, 'office_id': range(1, 7) * 2, 'sales': [np.random.randint(100000, 999999) for _ in range(12)]}) df.groupby(['state', 'office_id']).agg({'sales': 'sum'}) これは次を返します: sales state office_id AZ 2 839507 4 373917 6 347225 CA 1 798585 3 890850 5 454423 CO 1 819975 3 …
148 python  pandas 

4
Pythonパンダ:引数付きの関数をシリーズに適用する
引数付きの関数をpython pandasのシリーズに適用したい: x = my_series.apply(my_function, more_arguments_1) y = my_series.apply(my_function, more_arguments_2) ... ドキュメントには、この方法を適用するためのサポートを説明したが、それは引数を受け付けません。引数を受け入れる別のメソッドはありますか?または、簡単な回避策がありませんか? 更新(2017年10月): この質問はもともとパンダapply()が位置引数とキーワード引数を処理するように更新されていることを尋ねられたため、上記のドキュメントリンクはこれを反映し、いずれかのタイプの引数を含める方法を示しています。
147 python  pandas  apply 

8
NaN(欠損)値を持つパンダGroupBy列
私はグループ化したい列に多くの欠損値を持つDataFrameがあります: import pandas as pd import numpy as np df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']}) In [4]: df.groupby('b').groups Out[4]: {'4': [0], '6': [2]} PandasがNaNターゲット値を持つ行を削除したことを確認してください。(これらの行を含めたい!) このような操作が多く(多くのcolsに欠損値がある)、中央値(通常はランダムフォレスト)よりも複雑な関数を使用する必要があるため、複雑なコードを記述しないようにします。 助言がありますか?これのために関数を書くべきですか、それとも簡単な解決策がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.