Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
最近、LLMを使ったOSSの中身を調べてLLMとどう連携して目的を達成しているのかをいろいろ調べています。今回はLangChainのPandas Dataframe Agentの中身がどうなっているのか気になったので調べたまとめになります。 今回のコードは以下のところにあるので、全体としてどうなっているのか見たい方はこちらをご覧ください。 https://github.com/shu65/langchain_examples/blob/main/LangChain_Pandas_Dataframe_Agent.ipynb LangChainのPandas Dataframe Agentとは LLMを使いやすくwrapしてくれるLangChainにはいくつかAgentというLLMとToolと呼ばれるものを組み合わせて実行する仕組みが用意されています。この中でもPandas Dataframe
pandasのDataFrameの値を更新する方法がいくつかあるので、後で見返す為にも更新方法をまとめておく。 以下のlocやwhereの他に一括更新の方法がある。 DataFrameの値を更新する方法 pandasのDataFrameの値を更新する方法がいくつかあるが、大きく以下の3つの方法に分けられる。 値を一括代入 条件に合致するカラムを更新 別のDataFrameで上書き 各方法についてDataFrameを用いながら説明する。 import pandas as pd data_list1 = [ [1,2,3], [2,3,4], [3,4,5] ] col_list1 = ["c1","c2","c3"] df1 = pd.DataFrame(data=data_list1, columns=col_list1) print(df1) # c1 c2 c3 # 0 1 2 3 #
pandasのDataFrameでカラム末尾に"_x"や"_y"が付いてしまう。 カラム名が変わってしまうと要素にアクセスする際に困るので、"_x"や"_y"を付けたくない。 今回はカラム末尾に"_x"や"_y"が付いてしまう原因と対策を紹介する。 カラム末尾に"_x"や"_y"が付いてしまう原因 pandasのDataFrameでカラム末尾に"_x"や"_y"が付いてしまう原因は、マージ時にカラム重複が発生したから。 以降、カラム重複の発生について説明していく。 まず2つのデータフレームを用意し、結合するために同じ値を持ったカラムを双方に持たせる。 今回は結合用のキーカラムを c3 とする。 import pandas as pd data_list1 = [ [1,2,3], [2,3,4], [3,4,5] ] col_list1 = ["c1","c2","c3"] df1 = p
There are some ways to update column value of Pandas DataFrame. So I wrote down them for the future reference. I used documents of loc and where below as a reference. There are some ways to update column value of Pandas DataFrame. Common ways are below. Bulk update by single value Update rows that match condition Update with another DataFrame I'll introduce them with using DataFrame sample. import
うわっ…私のpandas、遅すぎ…?って時にやるべきこと(先人の知恵より) こちらに書かれている通り、pandasはたしかに遅い、特に使い方によっては極端に遅い。かといってforループを回避するためにあれこれ読みにくいコードを書きたくない。……だったらJuliaにしたらいいよ! という記事です。 pandasはどのくらい遅いか? 元記事のデータは非公開のコードで加工されたもののようなので、ここでは他の公共データセットのデータを使わせてもらいます。Scikit-learnに入っているCalifornia Housingを使いましょう。約2万件しかデータがないのはちょっと物足りないので10回連結して約20万件に水増しします。 import sklearn from sklearn.datasets import fetch_california_housing import pandas as
はじめに ここ最近、Polarsについて調べる中で色々と面白そうだと思い現在勉強中です。今回の記事では勉強内容の整理も兼ねて、Polarsの特色を紹介できればと思っています。 Polarsとは RustとPythonで使える[1]超高速("Blazingly fast")DataFrameライブラリー、つまりデータ解析に使えるライブラリーとなります。pandasに対するPolars(しろくま)であり洒落ているなと思います。 Core部分はRustで実装されており、インターフェースとしてPythonからも呼び出せるようになっています。RustからPythonパッケージへのビルドはmaturin(PyO3)を使っています。 環境 記事作成時のOSや言語、ライブラリーのバージョンは以下になります。関連が強そうなもののみ抜粋しています。 Ubntu 22.04 Python 3.10.6 (mai
作成パターン空のデータフレームを作って、レコードを追加していくパターン新たに空のデータフレームを作成既存データフレームから空のデータフレームを作成行だけ確保した空のDataFrameを作って、後からカラムを加えていくパターン空のデータフレームを作って、レコードを追加していくパターン新たに空のデータフレームを作成 import pandas as pd cols = ['col1', 'col2'] df = pd.DataFrame(index=[], columns=cols) record = pd.Series(['hoge', 'fuga'], index=df.columns) for _ in range(5): df = df.append(record, ignore_index=True) print(df)
Pandasの DataFrame でSettingWithCopyWarningの警告の意味と対処方法について書きます。 DataFrame使っているとSettingWithCopyWarningによく遭遇していました。その度にその場しのぎの修正をして対応していましたが、さすがにそろそろ根本的に理解しないと時間がもったいないと思い、この記事で整理しました。 公式Pandasのヘルプと偉大な先人が書いてくれた以下の記事が非常にわかりやすいです。この記事では、簡潔に内容を書きます。 結論 結論から先に述べます。 暗黙のCopyをやめる。そのためにChain Indexingをやめる。警告をなくすにはそれだけです。 現象 SettingWithCopyWarningが起こる一例を最初に紹介します。 シンプルなDataFrameを作ります。
When I concatenate pandas DataFrame, column order was changed. I want to keep original column order. Pandas DataFrame is useful for data handling in Python. But when we concatenate DataFrame, sometimes column order changes. If column order is changed, it seems weird. If possible, we want to use original column order. So today I will introduce about "How to keep column order in case of concatenate
概要 機械学習をしていると、データの可視化をしたいことが多く、ときたま画像も入った表を出したくなることがある。 (↓例えばこんなの。画像認識したときのネコである判定スコアとか。) データ可視化はExcelとか、pandasとか使うことが多いが、数値や文字列程度ならいいものの、画像の入った表はパパっと作る方法がすぐには思いつかなかったりする。 今回はpandasのDataFrameを元データとして、画像入りの表をできるだけ簡単に作る方法を検討したので、メモしておく。 今回メモする方法は下記3つ。 1. DataFrame.to_html() を使ってHTMLにする 2. DataFrame.to_dict() とjinja2を使ってHTMLにする 3. DataFrame.to_excel() を使って作ったExcelファイルにopenpyxlで画像を入れる 1. DataFrame.to_
Jupyter Notebook で Pandas のコードを実装しているときに同じような表示関連設定を繰り返し使うため,メモも兼ねてまとめておく.オプションは他にも多くあり,詳細はドキュメントに載っている.今回は Python 3.9 と Pandas 1.2.4 を前提とする. pandas.pydata.org オプション一覧を取得する 🎯 まず,Pandas では options でオプション一覧(名前空間)を取得できる.例えば display など.また options.display でオプション一覧(display 名前空間)を取得できる.例えば chop_threshold や colheader_justify など多くある. dir(pd.options) # ['compute', 'display', 'io', 'mode', 'plotting'] dir(p
はじめに 自己紹介 Python勉強中の大学院生です。自分が詰まったところを記録していきます。 記事を書くに至った経緯 pandasのdataframeの並べ替えをしたいときに、どうやるんだっけと迷うことが多かったので、ここで記事にして整理しようと思いました。 本記事の概要 どんな人に読んでほしいか Pythonのpandasを学び始めた人 pandasのdataframeの並べ替えのやり方をうまく整理できていない人 この記事に書くこと、わかること dataframeの並べ替えのやり方がわかります。具体的なメソッドは以下の2つです。 df.sort_values() (列の要素で並べ替え) df.sort_index()(インデックスで並べ替え) 具体的な方法 まずは適当にdataframeを作成します。 import pandas as pd data = [[4, 2, 3, 1],
pandas.DataFrameにおけるString型列をfloatやint形式に直したい時がある。欠損値がある場合でも、astype(float)をすることによりfloat形式に変換することは可能だ。しかし、実データを扱う際には例外レコード(数値が入っているはずなのに記号が入っているなど)が紛れ込んでいることも多く、astype変換ではできないことがある。 そんな時にはpandas.to_numericを使おう。 df["数値変更したい列"] = pd.to_numeric(df["数値変更したい列"], errors='coerce') errosに対応するパラメータには3種類存在し、それぞれ以下の役割を持つ。 raise:例外データがあることを表示し、エラーを返す coerce:例外データ部分をNaNで返し、他の行は数値変換する ignore:例外データがある場合には数値変換はせず、
pandasは、DataFrameの値の取得方法がいろいろあるため、値の代入更新もつい「この書き方でいいんだっけ」と混乱する。 基本的には(一般的な代入と同じく)左辺で更新するデータ範囲を、右辺で値を指定するのだが、左辺のデータ範囲の指定方法が様々あるのに加え、右辺での値の指定にも複数方法がある。 df.loc[df['col1']==3, ['col2', 'col3']] = df['col4'] col1 が 3 である行の col2,col3 列を、ともに同行の col4 の値にする 大別すると以下の感じ。 左辺のアクセス関数に例えば配列を渡しても、関数の種類や配列の中身によって、名前か、添字か、どのように解釈されるか異なってくるのがややこしさの元となる。
10000 rows × 5 columns 更新するデータ target_index = df[np.random.choice([True, False], size=len(df))].index target_value = np.random.randint(low=1000, high=3000, size=len(target_index)) replace_series = pd.Series(target_value, index=target_index) # DataFrameでの置き換えも試してみているので作成。上記と同じデータ。 replace_df = replace_series.to_frame('value') 問題だったコード %%timeit transformed_df = df.copy() for index, row in replace_df
こんにちは、堤です。 前回のブログでLangChainの基本的な使い方を試してみました。 tech.nri-net.com その中で今回はPandas Dataframe Agentを使ってみて、面白いなと思ったので使い方をご紹介します。 Pandas Dataframe Agentとは LangChainにはAgentという要求されたクエリに対して、ToolとLLMを使用しながら繰り返し結果を得て最終的な回答を導き出す機能があります。 python.langchain.com その中でPandas Dataframe AgentはPandasのデータフレームに特化したAgentとなっています。このAgentをつかうことでCSVなどのファイルをPandasで読み込んで分析を行うことができます。 python.langchain.com 試してみる 実際にCSVファイルに対してPandas
In [94]: data = {("japan","male"):[1,2,3], ("japan","female"):[11,12,13], ("u.s.","male"):[2,3,4]} In [94]: data Out[95]: {('japan', 'male'): [1, 2, 3], ('japan', 'female'): [11, 12, 13], ('u.s.', 'male'): [2, 3, 4]} In [96]: df1 = pandas.DataFrame(data) In [97]: df1 Out[97]: japan u.s. male female male 0 1 11 2 1 2 12 3 2 3 13 4 In [98]: df1.columns Out[98]: MultiIndex([('japan', 'male'), ('japan
I have a pandas dataframe, df: c1 c2 0 10 100 1 11 110 2 12 120 How do I iterate over the rows of this dataframe? For every row, I want to access its elements (values in cells) by the name of the columns. For example: for row in df.rows: print(row['c1'], row['c2']) I found a similar question, which suggests using either of these: for date, row in df.T.iteritems(): for row in df.iterrows(): But I d
Pandas is very useful to handle table data. In table data, sometimes it contains None data. In that case we would like to remove None from specific column. So how can we remove None ? Today I will introduce about "How to remove none from pandas DataFrame". How to remove none from pandas DataFrame In order to remove None data, use dropna() method. As its name, dropna() drops None data. We can use i
データを分析する上では、通常は1つのDataFrameだけではなく、複数のDataFrameを組み合わせて、データを確認・分析していく必要があります。その際に必要となるのが、結合の処理です。 DataFrameの結合方法を、データベースにおけるSQLでのテーブルの結合方法に例えると、結合には行単位の連結であるUNION(ユニオン)と、列単位の連結であるJOIN(ジョイン)の2種類があり、それぞれ次のようなものになります。 行単位の連結(UNION):同じ列をもつDataFrameを縦(行を増やす)方向に連結する。列単位の連結(JOIN):結合するキーとなる列を元に、DataFrameを横(列を増やす)方向に連結する。 この記事では、DataFrameの結合方法の1つである列単位の結合(JOIN)について学んでいきましょう。Pandasではmerge()を利用して、DataFrameに対して
こんにちは、平野です。 久しぶりにブログ書く時間が確保できました。 在宅で仕事しているとちょこちょこ家事が発生したりで、なかなかブログまで手が回らない...。 と言っていても仕方ないので、定期的なアウトプットは再開して行きます! 閑話休題。 Redshiftへのデータロードする際にSTL_LOAD_ERRORが発生して何か失敗してるなぁ、と思ったら、 pandasの意外と面倒な仕様に当たっていて、解決までに結構苦労したのでブログにしておきます。 今回、既存システムの移行ということでpandasでのデータ整形に初めて触ったのですが、 比較的あるあるなハマり方なのかな、ということで参考にして頂ければと思います。 状況 今回想定しているケースは以下のような状況です。 S3上のファイルをread_csvでpandas DataFrameに取り込む DataFrameで値の整形などを行う(この記事で
pandas.DataFrame is useful to handle table format data. We can import CSV or Excel data into dataframe and summarize it. Then sometimes we want to know dataframe content in progress. So we will do like following. We will use print. But it omits rows and columns when it has a lot of rows and columns. If important parts are omitted, it is hard to test program. How can we print all rows and columns ?
from tabulate import tabulate import pandas as pd from pprint import pprint df = pd.read_csv('small_category.csv', encoding='utf-8-sig') br = '\n' print(br + 'print'.center(20, '=') + br) print(df.head()) print(br + 'pprint'.center(20, '=') + br) pprint(df.head()) print(br + 'tabulate psql'.center(20, '=') + br) print(tabulate(df.head(), headers='keys', tablefmt='psql', numalign='right', stralign=
1. はじめに pandas.DataFrameをExcelのようにGUIで扱えたら便利だと思いませんか? なんとStreamlitではできてしまうみたいです。 まだexperimentalな機能ですが、とても気になったので試してみました。 2. まずはお試し こんな感じのコードを書きます。 import streamlit as st import numpy as np import pandas as pd df = pd.DataFrame(np.arange(12).reshape(4, 3), columns=(f"col{i+1}" for i in range(3))) edited_df = st.experimental_data_editor(df) st.line_chart(edited_df) これを実行してみると編集できました! Command+v もしくは
from __future__ import annotations from enum import auto, Enum, unique class StringEnum(str, Enum): """文字列の列挙型 Note ---- 3.11 で追加された `StrEnum` は `auto()` で `str.lower()` を呼び出すが、 このクラスはそのままの名前を返す """ def _generate_next_value_(name, start, count, last_values): return name def __str__(self): return self.value @classmethod def values(cls) -> list[str]: return [str(i) for i in cls] import pandas as pd
前回はpandasのDataFrameオブジェクトの生成とloc属性/iloc属性と軸ラベル/インデックスを組み合わせて要素を選択する方法について話しました。今回はDataFrameオブジェクトに関するさまざまな情報を調べたり、別の種類のオブジェクトに変換したりするのに使える属性やメソッドを紹介していきます。 DataFrameオブジェクトの要素の型/形状/次元数などを調べるには 本連載の第1回ではheadメソッドなどを紹介しましたが、ここではまずDataFrameオブジェクトそのものについての情報、例えばどんな種類のデータを格納しているのかや、その形状(何行何列のデータなのか)などを調べる方法を紹介します。ここでは以下に示すコードで生成したDataFrameオブジェクトを例に取りましょう。 df = pd.DataFrame([{'name': 'kawasaki', 'age': 80
Introduction I have talked quite a bit about how pandas is a great alternative to Excel for many tasks. One of Excel’s benefits is that it offers an intuitive and powerful graphical interface for viewing your data. In contrast, pandas + a Jupyter notebook offers a lot of programmatic power but limited abilities to graphically display and manipulate a DataFrame view. There are several tools in the
動機 仕事で AI や機械学習、データ分析といった技術を身に付ける必要性ができ、 まずは Python を使ったデータ分析を修得するために pandas を 利用したデータ分析にチャレンジしています。 自分にはシステム開発経験があり SQL には使い慣れているのですが、 pandas のデータ分析の記述方法があまり理解できない状況でした。 巷では「pandas は SQL と似ている」といった表現をよく聞くので、 それならば SQL での書き方を pandas の書き方と比較したら 理解が深まるのではないかと思い、今回まとめてみました。 なお本記事は、ある程度のターミナル操作や MySQL、Python、pandas についての知識がある方を対象としています。 なお、ここからの説明は長いためコードの比較結果のみを見たい場合は、 比較結果まとめを参照ください。 環境 項目 内容
Jupyter Notebook で画像をダウンロードすることなく、URLから参照してPandas DataFrame内部に表示させる 2021-12-28 データ分析などをしていると、画像はダウンロードせずに特定の CDN (GCP なら GCS, AWS なら S3 など)で提供されている画像を参照して、 Jupyter Notebook 上で良い感じに表示させたいときがありませんか? 例えば、画像と説明文がペアになっているデータを画像自体はダウンロードせずに Jupyter 上で画像と説明文を DataFrame として表示させたいときが多々ある。 元の画像自体は CDN に格納されていて、画像をダウンロードする必要はなく参照するだけのときにはすごく便利。 毎度画像を CDN からダウンロードするのも無駄なので、画像を加工せずに Jupyter 上で表示するだけなら、この方法がベスト
2023年4月、pandas 2.0がリリースされた。 What’s new in 2.0.0 (April 3, 2023) — pandas 2.1.0.dev0+766.g935244a9b9 documentation さっそく手元のツール群のバージョンを上げた所、従来append()を使っていた処理が動かなくなりハマった。 pandas.DataFrame.append()が削除 Pandas 1系では、Dataframeに新たな行を追加する関数としてpandas.DataFrame.append()が用意されていた。 import pandas as pd df = pd.DataFrame( { "名前": ["Alice", "Bob", "Charlie", "Dave"], "年齢": [25, 30, 35, 40], "都市": ["東京", "ニューヨーク", "
gspread-dataframeライブラリについて日本語の文献が少ないと感じたのでまとめる。 やりたいこと Pythonでgoogleスプレッドシートを操作したい。一度スプレッドシートのデータをpandasのDataframeに入れてから、編集して、それを元のスプレッドシートに反映させたい!イメージは以下 やってみた まずは、読み書きの初期設定。画像付きでわかりやすいサイトがあった。スプレットシートやPythonの初期設定は難なく終った。 そして実際にコピーして、編集して、スプレッドシートに反映させる作業を行った。 とても丁寧なサイトがあり、参考にしてやってみた。スプレッドシートからコピーする作業はそこまで大変ではなさそう。 しかし、再び元のスプレッドシートをコピーする場合、cell_listに全てのセルについて保存してから反映させる。この作業がちょっと複雑そう。 マジギレパンダス そこ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く