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

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

7
matplotlibを使用して、カテゴリレベルごとに異なる色をプロットする
のdiamondsような変数で構成されるこのデータフレームがあり、それぞれ(carat, price, color)に対してpricetoの散布図を描画したいのですが、これは、プロット内で異なる色が異なることを意味します。caratcolorcolor これは容易であるRとggplot: ggplot(aes(x=carat, y=price, color=color), #by setting color=color, ggplot automatically draw in different colors data=diamonds) + geom_point(stat='summary', fun.y=median) これはPythonでどのように使用できmatplotlibますか? PS: seabornand などの補助プロットパッケージについて知っていますが、ggplot for pythonそれらを好みませんmatplotlib。単独で使用できるかどうかを確認したいだけです。; P

4
Numpy isnan()は、floatの配列で失敗します(pandasデータフレームの適用から)
私はパンダのデータフレームの適用から出てくるフロートの配列(いくつかの通常の数、いくつかのナン)を持っています。 何らかの理由で、この配列でnumpy.isnanが失敗していますが、以下に示すように、各要素は浮動小数点数であり、numpy.isnanは各要素で正しく実行され、変数の型は間違いなくnumpy配列です。 どうしたの?! set([type(x) for x in tester]) Out[59]: {float} tester Out[60]: array([-0.7000000000000001, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, …
101 python  arrays  numpy  pandas 

5
パンダのMultiIndexにレベルを追加する
いくつかのグループ化の後に作成されたMultiIndexを持つDataFrameがあります。 import numpy as np import pandas as p from numpy.random import randn df = p.DataFrame({ 'A' : ['a1', 'a1', 'a2', 'a3'] , 'B' : ['b1', 'b2', 'b3', 'b4'] , 'Vals' : randn(4) }).groupby(['A', 'B']).sum() df Output> Vals Output> A B Output> a1 b1 -1.632460 Output> b2 0.596027 Output> a2 …
101 python  pandas 


2
パンダ:既存の列から計算された値を使用して、データフレームに2つの新しい列を作成します
私はパンダライブラリを使用しておりdf、n列(n> 0)のデータフレームに2つの新しい列を追加したいと思います。 これらの新しい列は、データフレームの列の1つに関数を適用した結果です。 適用する関数は次のようになります。 def calculate(x): ...operate... return z, y 値のみを返す関数の新しい列を作成する1つの方法は次のとおりです。 df['new_col']) = df['column_A'].map(a_function) だから、私が欲しいもの、そして失敗したことを試みたもの(*)は、次のようなものです: (df['new_col_zetas'], df['new_col_ys']) = df['column_A'].map(calculate) これを達成するための最良の方法は何でしょうか?手がかりなしでドキュメントをスキャンしました。 ** df['column_A'].map(calculate)パンダシリーズを返します。各アイテムはタプルz、yで構成されています。これを2つのデータフレーム列に割り当てようとすると、ValueErrorが発生します。*
100 python  pandas 

8
パンダは日付のヒストグラムをプロットできますか?
シリーズを取得して、dtype =のdatetime列に強制変換しましたdatetime64[ns](ただし、日付の解決だけが必要です...どのように変更するかわからない)。 import pandas as pd df = pd.read_csv('somefile.csv') column = df['date'] column = pd.to_datetime(column, coerce=True) しかし、プロットは機能しません: ipdb> column.plot(kind='hist') *** TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64') 週、月、または年ごとの日付数を示すヒストグラムをプロットしたいと思います。 確かにこれを行う方法はありpandasますか?

7
Pandas DataFrameで列をシフトする方法
Pandas DataFrameで列をシフトしたいのですが、ドキュメント全体からDF全体を書き換えずにそれを行う方法を見つけることができませんでした。誰でもそれを行う方法を知っていますか?データフレーム: ## x1 x2 ##0 206 214 ##1 226 234 ##2 245 253 ##3 265 272 ##4 283 291 望ましい出力: ## x1 x2 ##0 206 nan ##1 226 214 ##2 245 234 ##3 265 253 ##4 283 272 ##5 nan 291
100 python  pandas  dataframe 

5
場所によるパンダ列の選択
名前付きパンダの列に整数でアクセスしようとしています。 を使用して、場所によって行を選択できますdf.ix[3]。 しかし、整数で列を選択する方法は? 私のデータフレーム: df=pandas.DataFrame({'a':np.random.rand(5), 'b':np.random.rand(5)})
100 python  pandas  indexing 

1
パンダデータフレームの最初の数行を読み取る方法
行の長さを事前に知らなくても、ファイルのread_csv最初のn行だけを読み取るための組み込みの方法はありますか?読み取るのに長い時間がかかる大きなファイルがあり、たまに最初の20行だけを使用してサンプルを取得したい場合があります(すべてをロードしてその先頭をとらない方がよい)。 行の総数がわかっている場合は、次のようにfooter_lines = total_lines - nしてこれをskipfooterキーワードargに渡すことができます。私の現在の解決策はn、PythonとStringIOで最初の行を手動で取得してパンダに渡すことです。 import pandas as pd from StringIO import StringIO n = 20 with open('big_file.csv', 'r') as f: head = ''.join(f.readlines(n)) df = pd.read_csv(StringIO(head)) それはそれほど悪くはありませんが、キーワードや何かでそれを行うためのより簡潔で「パンダシック」(?)な方法はありますか?
100 python  pandas  csv  dataframe 

9
パンダから複数の列を返しますapply()
私はパンダのDataFrameを持っていますdf_test。バイトでサイズを表す「サイズ」列が含まれています。次のコードを使用して、KB、MB、GBを計算しました。 df_test = pd.DataFrame([ {'dir': '/Users/uname1', 'size': 994933}, {'dir': '/Users/uname2', 'size': 109338711}, ]) df_test['size_kb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0, grouping=True) + ' KB') df_test['size_mb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 2, grouping=True) + ' MB') df_test['size_gb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 3, grouping=True) …


9
パンダのテーブルの前に名前で列を移動します
これが私のdfです: Net Upper Lower Mid Zsore Answer option More than once a day 0% 0.22% -0.12% 2 65 Once a day 0% 0.32% -0.19% 3 45 Several times a week 2% 2.45% 1.10% 4 78 Once a week 1% 1.63% -0.40% 6 65 名前("Mid")で列をテーブルの先頭のインデックス0に移動するにはどうすればよいですか。結果は次のようになります。 Mid Upper Lower Net Zsore Answer …
100 python  pandas  move  dataframe  shift 

2
Python Pandasで列をビニング
数値のデータフレーム列があります。 df['percentage'].head() 46.5 44.2 100.0 42.12 列をビン数として表示したい: bins = [0, 1, 5, 10, 25, 50, 100] どのようにしてビンの結果を得ることができvalue countsますか? [0, 1] bin amount [1, 5] etc [5, 10] etc ......

7
Python Pandasで、2つの値の間のDataFrameの行を選択するにはどうすればよいですか?
df列の値が99〜101の行のみを含むようにDataFrameを変更し、closing_price以下のコードでこれを実行しようとしています。 しかし、私はエラーが出ます ValueError:Seriesの真理値があいまいです。a.empty、a.bool()、a.item()、a.any()またはa.all()を使用します ループを使用せずにこれを行う方法があるかどうか疑問に思っています。 df = df[(99 <= df['closing_price'] <= 101)]
99 python  pandas 

4
パンダのデータフレームとカウントで選択した列の値の一意の組み合わせ
私はパンダのデータフレームに次のようにデータを持っています: df1 = pd.DataFrame({'A':['yes','yes','yes','yes','no','no','yes','yes','yes','no'], 'B':['yes','no','no','no','yes','yes','no','yes','yes','no']}) だから、私のデータはこのようになります ---------------------------- index A B 0 yes yes 1 yes no 2 yes no 3 yes no 4 no yes 5 no yes 6 yes no 7 yes yes 8 yes yes 9 no no ----------------------------- 別のデータフレームに変換したいと思います。予想される出力は、次のPythonスクリプトで表示できます。 output = pd.DataFrame({'A':['no','no','yes','yes'],'B':['no','yes','no','yes'],'count':[1,2,4,3]}) だから、私の期待される出力は次のようになります -------------------------------------------- index A B …
99 python  pandas 

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