質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1117閲覧

pandas sort_values:文字と数値の混在する列をソートして、数値を上の行から降順、文字列を数値の後の行に並べたい

matsutai

総合スコア53

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2022/08/11 04:54

pandas データフレームの 文字と数値が混在した列で、
数値を、上の行から降順にして、文字列は数値の後の行に並べたいです。

  • python

ソースコード

df = pd.DataFrame({'col1':'B',1,3,'B',2,'B'],'col2':100,200,300,400,500,600]},dtype='object') df.sort_values(by=['col1','col2'],ascending=False,inplace=True) ↓になりますが、col1 の数値を上の行に降順で、文字列は後ろの行にしたいです 'col1' 'col2' B 600 B 400 B 100  3 300 2 500 1 200  ↓ のように、col1 を並べたい 'col1' 'col2' 3 300 2 500 1 200 B 600 B 400 B 100 ちなみに、単独列で、ソートするとエラーが出ました。 複数列を指定したら、通ったので、上記のようにしています。 これに関しても、アドバイスがあればいただきたいです。 f.sort_values(by=['col1'],ascending=False,inplace=True)  ↓ TypeError: '<' not supported between instances of 'str' and 'int'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

python

1import pandas as pd 2 3df = pd.DataFrame({ 4 'col1': ['B', 1, 3, 'B', 2, 'B'], 5 'col2': [100, 200, 300, 400, 500, 600] 6}, dtype='object') 7 8# 9dfx = df.groupby(df['col1'].map(lambda x: {int: 0, str: 1}.get(type(x))), group_keys=False)\ 10 .apply(lambda x: x.sort_values(['col1', 'col2'], ascending=False))\ 11 .reset_index(drop=True) 12 13print(dfx)
col1col2
3300
2500
1200
B600
B400
B100

投稿2022/08/11 05:48

melian

総合スコア19805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsutai

2022/08/12 05:22

ありがとうございました。 文法の理解がまだ追いついていませんが、理解して自分のものにしたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問