KNIMEとか倉庫

KNIMEやEXCELなどの備忘録です。

Tips

【Python】dataframeを数字に変換したい。

・お題:pandasのdataframeで、本来数字が入るべきところにエラーの文字列が入っており、無視したいのに数字として処理できない。文字列をNaNに変換し、数字として扱いたい。 ・データセットを作成する。 import pandas as pddf=pd.DataFrame({"A":[1,2,3,4,…

【Python】データで計算したい

・お題:DataFrameのデータを使って、集計など、何らか計算したい。 ・DataFrameが与えられて、何等か計算したいとする。そのような場合には、pandasのapplyメソッドが便利。 ・まずはデータセットを作成する。 import numpy as npimport pandas as pd a=np.…

【Python】複数のヒストグラムをいい感じに並べたい

・お題:いろいろなヒストグラムを分かりやすく並べて描画したい。 ・ヒストグラムは分布をみるのに便利だけれど、たくさん描くと見づらくなってしまう。そこで、良い感じに複数のヒストグラムを並べて描画できないか、少し調べてみた。 ・とりあえず、データ…

【Python】表を縦長にしたい

・お題:マトリックスになっている表を、リスト形式に変形したい。 ・表の形式として、マトリックス形式とリスト形式というやつがあるらしい。 マトリックス形式が以下の形式で、プレートマップのような感じ。 対して、それぞれの要素を縦に並べたような表を…

【Python】DataFrameをマルチにまとめたい

・お題:複数のDataFrameを纏めて、マルチインデックスやマルチカラムの一つのDataFrameとして扱いたい。 ・pandasのDataFrameの扱い方がよく分からなかったので、少し調べてみた。すぐ忘れるので、メモしておく。 ・とりあえず、csvをDataFrameとして読み込…

【Python】マルチカラムから列をとってきたい

・お題:マウスに試験物質を連投したところ、以下の体重データが得られた。各処置条件の平均値、中央値、最大値、最小値を一つの表に作成し、そこからデータを切り出すことで、経日的なグラフで示したい。 データ Compound Dose No Day0 Day1 Day2 Day3 Day4…

【Python】boolean型でifしたい

・お題:boolean型の変数を使って、ifの条件分岐をしたい。 ・boolean型は、True/Falseを示す型のことらしい。 ・a=Trueとすれば、aにTrueというboolean変数が入った状態になる。また、Trueはintの1、Floatの1.0、strの"True"に対応しており、Falseはintの0…

【EXCEL】文字列として認識されている数字を数値で認識させたい

・EXCELで数字を弄っていると、たまに数字が文字列として認識されてしまい、その後の処理ができなくなる場合がある。セルを一つずつアクティブにして数値とにして認識させることもできるが、面倒くさい(例は下図)。 ・一気に数値に変換する方法をメモして…

【KNIME】相対パスでデータを読み込みたい

・KNIMEでいろいろワークフローを作成していると、データの保存場所に対してアクセス権のないPCではワークフローが使えないなどのトラブルが起こる。 ・対処方法の一案として、相対パスでアクセスするという手がある。 ・以降、参照ファイルの場所などは、あ…

【Python】文字列に変数を埋め込みたい

・お題:文字列に変数を埋め込みたい。・printを使うと引数の文字列を表示することができる。表示する文字列の中に変数を埋め込みたい場合、f文字列というのを使うことが多いらしい。 ・とりあえず埋め込む。 a="りんご" b="ぶどう" を実行した後に、 print(f…

【EXCEL】順位を指定して数値を返したい

・EXCELで、最大値であればmax関数、最小値であればmin関数で返すことができる。 ・3番目に大きい数や3番目に小さい数など、順位を指定して数値を返すにはどうすれば良いか調べてみたところ、large関数とsmall関数が用意されていた(下図、見返すと範囲が間…

【Python】用語が分からない「メソッド」「モジュール」「ライブラリ」「パッケージ」

・Pythonを弄っていて見聞きする言葉の意味が、素養のない私の頭には全く入らないので、ググって私なりに解釈してみた。厳密な意味での解釈からは程遠いことを前提に、実務的に区別することを目標にした。・今回は、「メソッド」「モジュール」「ライブラリ…

【Python】リストを辞書に変換したい

・お題:リストを辞書に変換したい。 ・いくつかのデータを纏めて管理するデータ型として、Pythonにはリストをはじめとするいくつかの型が用意されている。 ・リスト([a,b,c,d]みたいなやつ)からデータを引っ張ってくるには、リストの何番目のデータをとっ…

【Python】無名関数を使いたい

・お題:無名関数を使えるようになりたい。 ・Pythonでは、必要に応じて関数を組んで処理を回すことがある。defを使って書くほどもない関数を、簡単に記述する際に無名関数というやつを使うらしい。 ・defで定義して特に不自由することはないと思うけれど、…

【Python】グラフを描きたい

・お題:y=sinXとy=cosXのグラフを描きたい。 ・「python グラフ」などで検索すれば情報がたくさん出てくる。しかし、素養のない私のような人間は、すぐにやり方を忘れてしまうし、思い出すにも時間がかかる。そこで、ミニマムパッケージのグラフの書き方を…

【KNIME】正規表現を使って文字列を弄りたい

・正規表現を使って文字列を弄りたい場面があった。 ・例えば、以下の表の数字だけを*に置き換えることを考える。 ・String ManipulationノードにregexReplaceという数式がある。regexは正規表現のことっぽい。例えば以下のように正規表現で数字を表現するこ…

【KNIME】全角と半角を変換したい

・全角と半角が混在している文字列があったとする。 ・表記の揺れは小さい方が良いので、KNIMEでこの揺れを半角か全角のどちらかに揃えたいと思ったのだが、やっぱりやり方が分からなかった。 ・そこで、Python Scriptノードを使って、Pythonで実装してみた…

【KNIME】場合分けして処理したい

・先日のワークフローで、条件ごとに処理を変えたい場面があった。 ・やり方がよく分からなかったので、Row Splitterで表を条件の数だけカチ割って、それぞれでString ManipulationやMath Formulaで処理させていた。 ・調べてみると、Rule Engineというノー…

【KNIME】同じ基準でNormalizeしたい

・例えば、学習データでにNormalizeを施してモデルを構築した場合に、テストデータをモデルに適用する前に学習データと同じNormalizeを施したいとする。 ・どうすればよいかと調べてみると、Normalizer (Apply)というノードがあった。サンプルのワークフロー…

【KNIME】アルファベットを含むセルをmissing"?"にしたい

・KNIMEでいろいろ扱っていると、特定の条件を満たすセルのデータを消したくなることがある。例えば、数値データばかりのところに、よくわからないアルファベットを含む文字列が混ざっている場合など。 ・こういう場合、文字列を含むセルをmissingにしたいが…

【KNIME】文字列を文字数で区切って別々の列に分けたい

・文字列を固定長の別々の列に分けたいことがあった。 ・やることはCell Splitterとほぼ同じなので、Cell Splitterで調べてみると、Cell Splitter By Positionなるノードがあった。如何にもこれっぽい。 ・このノードは、①区切る文字の隙間の番号と②区切った…

【KNIME】数値に応じて表を分割したい。

・表中の何らかの数値を基準として、表を分割したいことがあるとする。そんな時には、Rule-based Row Splitterノードが便利。 ・ワークフローを組んでみた(下図)。 ・Rule-based Row Splitterノードの設定は以下の通り。 ・ちなみに、Rule-based Row Filte…

【KNIME】Missing Valueのある列または行を丸ごと消したい

・Missing ValueのあるTableを処理する際に、何らかの方法でこの穴に対処する必要がある(例えば以下のTable)。 ・数値が何等か予想できるのであれば予測値で埋めることもできると思う。群内の欠損地であれば、平均値や中央値で補うこともあるかもしれない…

【KNIME】列をセミコロン区切りでくっつけたい

・諸般の事情で、別々のセルに分かれている文字列をセミコロン区切りで一つにまとめ上げたいケースがあった。 ・以下の例でいえば、それぞれの行に対して、「A;B;C」と「あ;い;う」という列をまとめた列を作成するイメージ。 ・なんとなく、ノード検索で"com…

【KNIME】SMILESを前処理したい

・化合物の構造情報を使って色々解析する際に、前処理をしたい場合がある。 ・例えば、SDFをSMILESに変換するのであれば、SDF ReaderとRDKit Canon SMILESで何とかなる。 ・今回は、このSMILESを更にKNIMEで前処理するにはどうすれば良いか、少し調べてみた…

【KNIME】行に含まれる値でcountifしたい。

・表の行に含まれている特定の値(文字列や数値)の数を数えたかった。 ・調べたところ、それらしい答えが見つかったので、メモしておく。 ・真似したのは以下の記事。 forum.knime.com ・以下、組んだワークフローの例(元記事と全く同じ) ・工程は以下の…

【KNIME】列または行の数値を集計したい。

・KNIMEで解析をしていて、列の数値または行の数値を集計したいことがあった。 ・それぞれに使うノードが異なるので、メモしておく(下図)。 ・列のデータを足す場合はGroupByを使う(以下設定)。ワイルドカードですべての列を選択し、処理にSumを設定。 …

【KNIME】sdfファイルから化合物の情報を抜き出したい。

・先日、化合物をKNIMEで扱ってみた。 ・化合物の構造ファイルとして、いろいろな記述法があり、中でもSMILESとSDFはよく見かける。 ・SMILESの特徴は、1次元の文字列の配列であり、記述自体がシンプルであること。SDFの特徴は、化合物の構造以外の情報も盛…

【KNIME】いろいろな分布の乱数を発生させたい。

・KNIMEでいろいろな分析をしていると、乱数を発生させたくなることがある。 ・EXCELでの乱数の発生のさせ方は以前記事にしたが、KNIMEだともっと簡単たくさんの乱数を発生させることができる。 ・Node Repositoryで調べると、以下の一群のノードが役に立ち…

【KNIME】グラフ通りのデータを作りたい。

・サンプルデータを使って分析を組んでいると、「こんな感じの分布のデータが欲しいなぁ」と思うことがある。 ・正規分布だったり一様分布だったりするならシンプルなのだが、例えば「平面グラフのこの辺に軸が傾いた楕円状に分布しているデータが欲しい」な…