<pandas, Python> 条件にあった行を削除する。
条件condition
にあった行Row
を削除drop
する。
まずは、お見本データフレームDataFrame
作成。
In [54]: data=''' ...: 1 2 3 4 5 ...: a b c d e ...: f g h i j ...: k l m n o ...: ''' In [55]: df = pd.read_table(io.StringIO(data), sep=' ') In [56]: df Out[56]: 1 2 3 4 5 0 a b c d e 1 f g h i j 2 k l m n o
で、行のドロップ。
インデックスindex
で指定すればよし。
In [58]: df.drop(1) Out[58]: 1 2 3 4 5 0 a b c d e 2 k l m n o In [59]: df.drop([1]) Out[59]: 1 2 3 4 5 0 a b c d e 2 k l m n o
で、列column
の場合はaxis=1
を指定。
In [61]: df.drop(['1'], axis=1) Out[61]: 2 3 4 5 0 b c d e 1 g h i j 2 l m n o
あとは、条件にあった行を見つける。
In [65]: df[['1', '3']].apply(lambda x: True if x[0] == 'f' and x[1] == 'h' else False, axis=1) Out[65]: 0 False 1 True 2 False dtype: bool In [66]: j = df[['1', '3']].apply(lambda x: True if x[0] == 'f' and x[1] == 'h' else False, axis=1) In [67]: j Out[67]: 0 False 1 True 2 False dtype: bool
で、True/False
のリストをデータフレームに突っ込めばオッケー。
In [68]: df[j] Out[68]: 1 2 3 4 5 1 f g h i j
が、、、こんな難しいことせんでも下記でよかった。。。
In [78]: df[(df['1'] == 'f') & (df['3'] == 'h')] Out[78]: 1 2 3 4 5 1 f g h i j
<mermaid> 後追いで、マーメイドの絵を出す。
JQuery.ajax()
とかで、後追いで、マーメイドmermaid
のソースsource
を読んで絵を作る方法。
mermaid.init()
をする。
うまくいった! すばらしい。
jsfiddle
で遊んでみた。
https://jsfiddle.net/3hx9ag6m/2/
すっごくお世話になったところ。助かりました。(vv)
naosim.hatenablog.jp
<Python> アルファベットのリストを作る。
chr()
にアスキーコードを入れればOK!
逆は、ord()
だよーん。
In [61]: [chr(i) for i in range(65,65+26)] Out[61]: ['A', 'B', 'C', : 'X', 'Y', 'Z'] In [62]: a = [chr(i) for i in range(65,65+26)] In [63]: [ord(i) for i in a] Out[63]: [65, 66, 67, 68, : 88, 89, 90]
参考にさせてもらいました。
hetapy.hatenablog.com
アスキーコード表。
http://www.k-cube.co.jp/wakaba/server/ascii_code.html
<pandas, Python> ふたつのカラムの値でソートする。
2つ、ふたつのカラムcolumn
の値でソートsort
する。
In [58]: df = pd.DataFrame({'a':[2,2,1,1,1],'b':[2,1,3,1,2],'c':['a','b','c','d','e']}) In [59]: df Out[59]: a b c 0 2 2 a 1 2 1 b 2 1 3 c 3 1 1 d 4 1 2 e In [60]: df.sort_values(['a','b'], ascending=[True, True], inplace=False) Out[60]: a b c 3 1 1 d 4 1 2 e 2 1 3 c 1 2 1 b 0 2 2 a
inplace=True
にすると、データフレームDataFrame
の中身をソートしたもので置き換える。
いつものスタックオーバーフロー。
stackoverflow.com
<pandas, Python> カラムの値を比較して、同じ値の行を抽出する。
カラムcolumn
の値を比較して、同じ値の行row
を抽出する。
対象のカラムを選択して、apply()
をして、その中で、lambda
関数で文字列比較処理をすればいい。
In [7]: df = pd.DataFrame({'a':[1,2,3,4,5],'b':[1,4,6,8,10],'c':[5,7,8,9,10]}) In [8]: df Out[8]: a b c 0 1 1 5 1 2 4 7 2 3 6 8 3 4 8 9 4 5 10 10 In [37]: df['e'] = df[['a','b']].apply(lambda x: 'hage!' if x[0] == x[1] else 'hige.', axis=1) In [38]: df Out[38]: a b c e 0 1 1 5 hage! 1 2 4 7 hige. 2 3 6 8 hige. 3 4 8 9 hige. 4 5 10 10 hige.
過去記事が役にたった。よかった。よかった。
nekoyukimmm.hatenablog.com
<mermaid> マーメイドにリンクを埋め込む
マーメイドmermaid
で作った絵に、リンクlink
を埋め込む。
click
行を追加すればオッケー。 下記、例。
<h2>mermaid in html</h2> <div class='mermaid'> graph TD; subgraph box A(Start)-->B(Do some stuff) B(Take some rest)-->C(do more) click B "http://www.yahoo.co.jp" "This is a link" end </div>
1つ問題が。
click
で指定する要素名(この場合は、B
)は、1文字しかだめ。
2文字にすると、リンクの埋め込みがうまく動かない。
いつもお世話になってる、スタックオーバーフロー。
stackoverflow.com