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

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

7
繰り返される「key = value」ペアのファイルをDataFrameに読み込みます
この形式のデータを含むtxtファイルがあります。最初の3行は何度も繰り返されます。 name=1 grade=A class=B name=2 grade=D class=A データを表形式で出力したいと思います。次に例を示します。 name | grade | class 1 | A | B 2 | D | A ヘッダーを設定してデータをループするのに苦労しています。これまでに試したのは、 def myfile(filename): with open(file1) as f: for line in f: yield line.strip().split('=',1) def pprint_df(dframe): print(tabulate(dframe, headers="keys", tablefmt="psql", showindex=False,)) #f = pd.DataFrame(myfile('file1') df = pd.DataFrame(myfile('file1')) pprint_df(df) それからの出力は …

2
ツリー内のルートの親とそのすべての子を識別する
私はそのようなパンダデータフレームを持っています: parent child parent_level child_level A B 0 1 B C 1 2 B D 1 2 X Y 0 2 X D 0 2 Y Z 2 3 これは次のような木を表しています A X / / \ B / \ /\ / \ C D Y | Z 私はこのようなものを作りたいです: root children A …
11 python  pandas 

4
要素の数が1と異なるグループでのDataFrameのフィルタリング
次の構造を持つDataFrameを使用しています。 import pandas as pd df = pd.DataFrame({'group':[1,1,1,2,2,2,2,3,3,3], 'brand':['A','B','X','C','D','X','X','E','F','X']}) print(df) group brand 0 1 A 1 1 B 2 1 X 3 2 C 4 2 D 5 2 X 6 2 X 7 3 E 8 3 F 9 3 X 私の目標は、1つのブランドがX関連付けられているグループのみを表示することです。グループ番号2には、brand Xに等しい2つの観測値があるため、結果のDataFrameから除外する必要があります。 出力は次のようになります。 group brand 0 1 A …

2
パンダ:極小-極大に基づくデータのジグザグ分割
時系列データがあります。データを生成する date_rng = pd.date_range('2019-01-01', freq='s', periods=400) df = pd.DataFrame(np.random.lognormal(.005, .5,size=(len(date_rng), 3)), columns=['data1', 'data2', 'data3'], index= date_rng) s = df['data1'] 極大値と極小値を結ぶジグザグ線を作成します。これは|highest - lowest value|、各ジグザグ線のy軸上で、前の距離のパーセンテージ(たとえば20%)を超える必要があるという条件を満たすことです。ジグザグ線、および事前に記述された値k(1.2など) 私はこのコードを使用してローカル極値を見つけることができます: # Find peaks(max). peak_indexes = signal.argrelextrema(s.values, np.greater) peak_indexes = peak_indexes[0] # Find valleys(min). valley_indexes = signal.argrelextrema(s.values, np.less) valley_indexes = valley_indexes[0] # Merge peaks and valleys data …

3
複数のカテゴリー列を変換する
私のデータセットには、列挙したい2つのカテゴリー列があります。2つの列には両方の国が含まれており、一部が重複しています(両方の列に表示されます)。同じ国のcolumn1とcolumn2に同じ番号を付けたいのですが。 私のデータは次のように見えます: import pandas as pd d = {'col1': ['NL', 'BE', 'FR', 'BE'], 'col2': ['BE', 'NL', 'ES', 'ES']} df = pd.DataFrame(data=d) df 現在、私はデータを次のように変換しています: from sklearn.preprocessing import LabelEncoder df.apply(LabelEncoder().fit_transform) ただし、これはFRとESを区別しません。次の出力に到達する別の簡単な方法はありますか? o = {'col1': [2,0,1,0], 'col2': [0,2,4,4]} output = pd.DataFrame(data=o) output


3
Pandasでグループ化されたDataFrameにPython関数を適用する-計算を高速化するための最も効率的なアプローチは何ですか?
私は非常に大きなPandas DataFrameを処理しています-私のデータセットは次のdf設定に似ています: import pandas as pd import numpy as np #--------------------------------------------- SIZING PARAMETERS : R1 = 20 # .repeat( repeats = R1 ) R2 = 10 # .repeat( repeats = R2 ) R3 = 541680 # .repeat( repeats = [ R3, R4 ] ) R4 = 576720 # .repeat( repeats …

6
AttributeError: 'DataFrame'オブジェクトには属性 'ix'がありません
パンダデータフレームの.ix属性を使用して列をプルしようとすると、上記のエラーが発生します(例:df.ix [:, 'col_header'])。スクリプトは今朝の時点で機能していましたが、今日の午後、Pandasの新規インストールを使用して新しいLinux環境で実行しました。他の誰かが以前にこのエラーを見たことがありますか?私はここや他の場所で検索しましたが、見つかりません。

3
パンダのデータフレームから列の一部のみを溶かさない
次のサンプルデータフレームがあります。 df = pd.DataFrame(data = {'RecordID' : [1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5], 'DisplayLabel' : ['Source','Test','Value 1','Value 2','Value3','Source','Test','Value 1','Value 2','Source','Test','Value 1','Value 2','Source','Test','Value 1','Value 2','Source','Test','Value 1','Value 2'], 'Value' : ['Web','Logic','S','I','Complete','Person','Voice','>20','P','Mail','OCR','A','I','Dictation','Understandable','S','I','Web','Logic','R','S']}) これはこのデータフレームを作成します: +-------+----------+---------------+----------------+ | Index | RecordID | Display Label | Value | +-------+----------+---------------+----------------+ | 0 | 1 | Source | Web | | 1 | 1 …

1
Pandas DataFrameのサブクラスのプロパティセッター
pd.DataFrame初期化するときに必要な引数が2つあるサブクラスをセットアップしようとしています(groupおよびtimestamp_col)。これらの引数groupとtimestamp_colに対して検証を実行したいので、各プロパティのセッターメソッドがあります。これは、私がset_index()取得しようとするまですべて機能しますTypeError: 'NoneType' object is not iterable。test_set_indexandで私のセッター関数に引数が渡されていないようtest_assignment_with_indexed_objです。if g == None: returnセッター関数に追加すると、テストケースに合格できますが、それが適切な解決策であるとは思われません。 これらの必須引数のプロパティ検証を実装するにはどうすればよいですか? 以下は私のクラスです: import pandas as pd import numpy as np class HistDollarGains(pd.DataFrame): @property def _constructor(self): return HistDollarGains._internal_ctor _metadata = ["group", "timestamp_col", "_group", "_timestamp_col"] @classmethod def _internal_ctor(cls, *args, **kwargs): kwargs["group"] = None kwargs["timestamp_col"] = None return cls(*args, **kwargs) def __init__( self, …

2
DataFrame、Python-3から上位N個の最小値を見つける方法
私はフィールド「年齢」のデータフレームの下にいます、データフレームからトップ3最小年齢を見つける必要があります DF = pd.DataFrame.from_dict({'Name':['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 'Age':[18, 45, 35, 70, 23, 24, 50, 65, 18, 23]}) DF['Age'].min() リストのトップ2年齢、つまり18、23が欲しい、これを達成する方法は? 注:DataFrame-DFには年齢の重複が含まれます。つまり、18と23が2回繰り返され、一意の値が必要です。

3
パンダのデータフレームで2行ごとに上の行に移動する
私はこの形のデータフレームを持っています: A B C D E 213-1 XL NaN NaN NaN 21 22.0 12 232.0 101.32 23-0 L NaN NaN NaN 12 23 12 232.2 NaN 31-0 LS NaN NaN NaN 70 70 23 NaN 21.22 そのデータフレームの2行ごとに上の行に移動して、期待される結果に示されているように、結合された行だけが残るようにしたいと思います。 ID Name A B C D E 213-1 XL 21 22.0 12 232.0 …
9 python  pandas 

1
2つのデータフレームをマージし、名前で列レベルを追加する
こんにちは私はパンダのconcat、join、mergeメソッドを掘り下げてきましたが、必要なものが見つからないようです。 2つのデータフレームがあるとしましょう A = pd.DataFrame("A",index=[0,1,2,3,4],columns=['Col 1','Col 2','Col 3']) B = pd.DataFrame("B",index=[0,1,2,3,4],columns=['Col 1','Col 2','Col 3']) >>> A Col 1 Col 2 Col 3 0 A A A 1 A A A 2 A A A 3 A A A 4 A A A >>> B Col 1 Col 2 Col 3 …

2
dtypesは、軸1(列)でシフトする際に問題を引き起こします
データフレームを検討する df df = pd.DataFrame(dict(A=[1, 2], B=['X', 'Y'])) df A B 0 1 X 1 2 Y シフトした場合axis=0(デフォルト) df.shift() A B 0 NaN NaN 1 1.0 X 予想どおり、すべての行を1行下に押します。 しかし、私が一緒にシフトすると axis=1 df.shift(axis=1) A B 0 NaN NaN 1 NaN NaN 私が期待したときにすべてがヌルです A B 0 NaN 1 1 NaN 2 これがなぜ起こったのか理解しています。の場合axis=0、Pandasは列ごとに動作しており、各列は単一でdtypeあり、シフトするときNaNに、最初または最後に導入された値を処理する方法に関する明確なプロトコルがあります。しかし、それに沿っaxis=1てシフトするとdtype、1つの列から次の列へのあいまいさの可能性が生じます。この場合、私は列に力int64を入れようとしてobjectおり、パンダスは単に値をnullにすることにしました。 これdtypesはint64、次の場合にさらに問題になります。float64 …
9 python  pandas 


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