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

データフレームは表形式のデータ構造です。通常、これには行が観測で列がさまざまなタイプの変数であるデータが含まれます。「データフレーム」または「データフレーム」は、いくつかの言語(R、Apache Spark、deedle、Maple、Pythonのpandasライブラリ、およびJuliaのDataFramesライブラリ)でこの概念に使用される用語ですが、「テーブル」は、 MATLABおよびSQL。

4
パンダのdatetime dtypes read_csv
複数の日時列を含むcsvファイルを読み込んでいます。ファイルを読み込むときにデータ型を設定する必要がありますが、日時に問題があるようです。例えば: headers = ['col1', 'col2', 'col3', 'col4'] dtypes = ['datetime', 'datetime', 'str', 'float'] pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes) 実行時にエラーが発生した場合: TypeError:データ型 "datetime"が理解できません 実際にpandas.to_datetime()を使用して列を変換することはオプションではありません。どの列がdatetimeオブジェクトになるかわかりません。その情報は変更される可能性があり、私のdtypesリストを知らせるものからのものです。 または、numpy.genfromtxtを使用してcsvファイルをロードし、その関数にdtypesを設定してから、pandas.dataframeに変換しようとしましたが、データが文字化けしました。どんな助けでも大歓迎です!

4
パンダで2列からタプル列を形成する方法
Pandas DataFrameがあり、「lat」列と「long」列を組み合わせてタプルを形成したいと思います。 <class 'pandas.core.frame.DataFrame'> Int64Index: 205482 entries, 0 to 209018 Data columns: Month 205482 non-null values Reported by 205482 non-null values Falls within 205482 non-null values Easting 205482 non-null values Northing 205482 non-null values Location 205482 non-null values Crime type 205482 non-null values long 205482 non-null values lat 205482 non-null …

10
データフレームをcsvに直接s3 Pythonに保存
新しいCSVファイルにアップロードしたいpandas DataFrameがあります。問題は、s3に転送する前にファイルをローカルに保存したくないことです。データフレームを直接s3に書き込むためのto_csvのような方法はありますか?私はboto3を使用しています。 ここに私がこれまでに持っているものがあります: import boto3 s3 = boto3.client('s3', aws_access_key_id='key', aws_secret_access_key='secret_key') read_file = s3.get_object(Bucket, Key) df = pd.read_csv(read_file['Body']) # Make alterations to DataFrame # Then export DataFrame to CSV through direct transfer to s3

12
data.frame行をリストに
行ごとのリストに変換したいdata.frameがあります。つまり、各行は独自のリスト要素に対応します。つまり、data.frameに行が含まれている限り、リストが必要です。 これまでのところ、私はこの問題に次の方法で取り組みましたが、これに対処するより良い方法があるかどうか疑問に思っていました。 xy.df <- data.frame(x = runif(10), y = runif(10)) # pre-allocate a list and fill it with a loop xy.list <- vector("list", nrow(xy.df)) for (i in 1:nrow(xy.df)) { xy.list[[i]] <- xy.df[i,] }
123 list  r  dataframe 

2
パンダでランダムな整数のデータフレームを作成するにはどうすればよいですか?
私が使用する場合randn、 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) 私が探しているものを私に与えますが、正規分布の要素があります。しかし、ランダムな整数が必要な場合はどうなりますか? randint範囲を提供することで機能しますが、配列のような配列ではrandn機能しません。それで、ある範囲の間のランダムな整数でこれをどのように行うのですか?

3
各行の最大値を持つ列名を見つけます
私はこのようなデータフレームを持っています: In [7]: frame.head() Out[7]: Communications and Search Business General Lifestyle 0 0.745763 0.050847 0.118644 0.084746 0 0.333333 0.000000 0.583333 0.083333 0 0.617021 0.042553 0.297872 0.042553 0 0.435897 0.000000 0.410256 0.153846 0 0.358974 0.076923 0.410256 0.153846 ここでは、各行の最大値を持つ列名を取得する方法を尋ねたいのですが、望ましい出力は次のようになります。 In [7]: frame.head() Out[7]: Communications and Search Business General Lifestyle Max 0 0.745763 …
122 python  pandas  dataframe  max 

8
1つの割り当てで複数の列をパンダデータフレームに追加する方法
私はパンダが初めてで、複数の列をパンダに同時に追加する方法を理解しようとしています。ここでどんな助けでもありがたいです。理想的には、これを複数のステップを繰り返すのではなく、1つのステップで実行したいと思います... import pandas as pd df = {'col_1': [0, 1, 2, 3], 'col_2': [4, 5, 6, 7]} df = pd.DataFrame(df) df[[ 'column_new_1', 'column_new_2','column_new_3']] = [np.nan, 'dogs',3] #thought this would work here...
122 python  pandas  dataframe 

7
Rデータフレームに行を追加する方法
StackOverflowを見回しましたが、Rデータフレームに行を追加するという問題に固有の解決策が見つかりません。 次のように、空の2列のデータフレームを初期化しています。 df = data.frame(x = numeric(), y = character()) 次に、私の目標は、値のリストを反復処理し、各反復でリストの最後に値を追加することです。私は次のコードから始めました。 for (i in 1:10) { df$x = rbind(df$x, i) df$y = rbind(df$y, toString(i)) } 私はまた、機能を試みたc、appendと、merge成功せず。何か提案があれば教えてください。
121 r  merge  append  dataframe  rows 

3
パンダの適用関数で行のインデックスを取得する
DataFrameパンダ全体に適用される関数の行のインデックスにアクセスしようとしています。私はこのようなものを持っています: df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) >>> df a b c 0 1 2 3 1 4 5 6 与えられた行の要素にアクセスする関数を定義します def rowFunc(row): return row['a'] + row['b'] * row['c'] 次のように適用できます: df['d'] = df.apply(rowFunc, axis=1) >>> df a b c d 0 1 2 3 7 1 4 5 6 34 驚くばかり!次に、インデックスを関数に組み込みたい場合はどうなりますか?これDataFrameを追加dする前のこの行のインデックスはIndex([u'a', u'b', …
121 python  pandas  dataframe 

14
各グループ内の行数を数える
データフレームがあり、各グループ内の行数をカウントしたいと思います。私は通常aggregate、次のようにデータを合計する関数を使用します。 df2 <- aggregate(x ~ Year + Month, data = df1, sum) 今、私は観察を数えたいのですが、の適切な議論を見つけることができないようですFUN。直感的には、次のようになると思いました。 df2 <- aggregate(x ~ Year + Month, data = df1, count) しかし、そのような運はありません。 何か案は? おもちゃのデータ: set.seed(2) df1 <- data.frame(x = 1:20, Year = sample(2012:2014, 20, replace = TRUE), Month = sample(month.abb[1:3], 20, replace = TRUE))
121 r  dataframe  aggregate  r-faq 

8
$と文字値を使用してデータフレーム列を動的に選択する
さまざまな列名のベクトルがあり、それぞれをループしてdata.frameからその列を抽出できるようにしたいと考えています。たとえばmtcars、文字セットに格納されているデータセットといくつかの変数名を考えてみますcols。のmtcars動的サブセットを使用して変数を選択しようとすると、colsこれらの作業のネザー cols <- c("mpg", "cyl", "am") col <- cols[1] col # [1] "mpg" mtcars$col # NULL mtcars$cols[1] # NULL これらに同じ値を返すようにするにはどうすればよいですか mtcars$mpg さらに、すべての列をループして、colsある種のループで値を取得する方法を教えてください。 for(x in seq_along(cols)) { value <- mtcars[ order(mtcars$cols[x]), ] }
120 r  dataframe  r-faq 

5
data.frame列名を関数に渡します
data.frame(x)とa を受け入れる関数を記述しようとしていますcolumn。関数はxに対していくつかの計算を実行し、後で別のdata.frameを返します。関数に列名を渡すためのベストプラクティスメソッドにこだわっています。 以下の2つの最小限の例fun1では、例としてを使用してでfun2操作を実行できるため、望ましい結果が得られます。ただし、どちらも一見(少なくとも私には)エレガントではないx$columnmax() にsubstitute()、そしておそらくeval() 列名を文字ベクトルとして渡す必要があります。 fun1 <- function(x, column){ do.call("max", list(substitute(x[a], list(a = column)))) } fun2 <- function(x, column){ max(eval((substitute(x[a], list(a = column))))) } df <- data.frame(B = rnorm(10)) fun1(df, "B") fun2(df, "B") fun(df, B)たとえば、関数をとして呼び出せるようにしたいと思います。私が検討したが試していない他のオプション: column列番号の整数として渡します。これは回避すると思いますsubstitute()。理想的には、関数はどちらかを受け入れることができます。 with(x, get(column))、しかし、それが機能しても、これにはまだ必要だと思います substitute 利用するformula()とmatch.call()、どちらも私はと多くの経験を持っているの。 副質問:do.call()優先されeval()ますか?
119 r  dataframe  r-faq 

3
文字列がリスト内のサブ文字列の1つをパンダで含むかどうかをテストする方法は?
df.isin()andの組み合わせに相当する関数はありdf[col].str.contains()ますか? たとえば、シリーズがあり s = pd.Series(['cat','hat','dog','fog','pet'])、のsいずれかが含まれるすべての場所を検索したい場合['og', 'at']、「ペット」以外のすべてを取得したいとします。 私には解決策がありますが、それはかなり洗練されていません: searchfor = ['og', 'at'] found = [s.str.contains(x) for x in searchfor] result = pd.DataFrame[found] result.any() これを行うより良い方法はありますか?

5
Pandasを使用して文字列列の各値に文字列プレフィックスを追加する
パンダデータフレームの上記の列の各値の先頭に(エレガントに)文字列を追加したいと思います。私はすでにこれをどのように行うかを考え出し、現在使用しています: df.ix[(df['col'] != False), 'col'] = 'str'+df[(df['col'] != False), 'col'] これは、やらなければならないエレガントなことの1つの地獄のようです-他の方法を知っていますか? これがまだ不明な場合は、次のように変更します。 col 1 a 2 0 に: col 1 stra 2 str0

1
Pandasはビューとコピーを生成するためにどのようなルールを使用していますか?
データフレームからの選択が元のデータフレームのコピーまたは元のビューであると決定するときにPandasが使用するルールについて混乱しています。 たとえば、 df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) 私queryはaがコピーを返すので、 foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 は、元のデータフレームには影響しませんdf。また、スカラーまたは名前付きスライスがビューを返すことも理解しています。 df.iloc[3] = 70 または df.ix[1,'B':'E'] = 222 変わりdfます。しかし、もっと複雑なケースになると、私は迷っています。例えば、 df[df.C <= df.B] = 7654321 変更しますがdf、 df[df.C <= df.B].ix[:,'B':'E'] ではない。 パンダが使用している簡単なルールはありますか?これらの特定のケースで何が起こっているか。特に、特定のクエリを満たすデータフレーム内のすべての値(または値のサブセット)をどのように変更しますか(上記の最後の例で試みているように)? 注:これはこの質問と同じではありません。と私はドキュメントを読んだが、それによって啓発されていません。このトピックに関する「関連」の質問も読みましたが、Pandasが使用している単純なルールや、それをどのように適用するか(たとえば、値(または値のサブセット)の変更)がまだありません。特定のクエリを満たすデータフレーム内。

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