pandasデータフレームのコンテンツに応じて1列を2列に分割します

フリーフロッグ

私はこのようなパンダDataFrameを持っています:

df = pd.DataFrame(['A',1,2,3,'B',4,5,'C',6,7,8,9])

    0
0   A
1   1
2   2
3   3
4   B
5   4
6   5
7   C
8   6
9   7
10  8
11  9

文字列と数字の組み合わせです。このDFを次のように2つの列に分割したいと思います。

   name value
0   A   1
1   A   2
2   A   3
3   B   4
4   B   5
5   C   6
6   C   7
7   C   8
8   C   9

これを行うための効率的な方法は何ですか?

イズレエル

次を使用できます。

df = pd.DataFrame({0 :['A',1,2,3,'B',4,5,'C',6,7,8,9]})
#check strings 
mask = df[0].astype(str).str.isalpha()
#check if mixed values - numeric with strings 
#mask = df[0].apply(lambda x: isinstance(x, str))
#create column to first position, create NaNs filled by forward filling
df.insert(0, 'name', df[0].where(mask).ffill())
#remove rows with same values - with names, rename column
df = df[df['name'] != df[0]].rename(columns={0:'value'}).reset_index(drop=True)
print (df)
  name value
0    A     1
1    A     2
2    A     3
3    B     4
4    B     5
5    C     6
6    C     7
7    C     8
8    C     9

または:

out = []
acc = None
for x in df[0]:
    #check if strings
    if isinstance(x, str):
        #assign to variable for tuples
        acc = x
    else:
        #append tuple to out
        out.append((acc, x))
print (out)

df = pd.DataFrame(out, columns=['name','value'])
print (df)
  name  value
0    A      1
1    A      2
2    A      3
3    B      4
4    B      5
5    C      6
6    C      7
7    C      8
8    C      9

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python Pandas:1つの列に沿って2つのデータフレームを比較し、別のデータフレームの両方のデータフレームの行のコンテンツを返します

分類Dev

データフレーム列を2値化し、それに応じて他の列値を分割します

分類Dev

pandas-データフレームの2つの別々の列の値に応じて列を作成します

分類Dev

3つのデータフレームのコンテンツをRの1つの列にマージします(複数の列にまたがって)

分類Dev

Pandasデータフレームのパターンに従って文字列列のコンテンツを変換します

分類Dev

Pythonデータフレームのコンテンツを新しい列に分割する

分類Dev

2列の範囲に応じて、新しい行をpandasデータフレームに挿入します

分類Dev

Python Pandas:2つのcsv(データフレーム)の行を1つの列に沿って類似した値と比較し、類似した行(列)のコンテンツを返します

分類Dev

pandasデータフレームに関数を適用して、他の列/セルに応じて列/セルのリストをスキャンします

分類Dev

データフレームでテキストをゼロと1に変換して、2つの列のコンテンツを他の多くの列に分割する方法

分類Dev

列Rのパターン変更に応じてデータフレームを転置します

分類Dev

データフレームの列コンテンツにラベル列を挿入します

分類Dev

条件に応じて、パンダデータフレームの特定の列の次の行を更新します

分類Dev

パンダの特定の列に応じてデータフレーム間の違いを取得します

分類Dev

同じデータフレーム内の別の列のコンテンツの条件に基づいて、データフレームに新しい列を追加します

分類Dev

Python pandasデータフレームは、文字列の長さに基づいてコンテンツを変更します

分類Dev

リストのコンテンツを「* \ n」でパンダのデータフレームに分割します

分類Dev

2つの列に応じてデータフレームを分割し、サブグループにいくつかの操作を適用します

分類Dev

列の値に応じて、データフレームをサブデータフレームに分割します

分類Dev

単一のパンダデータフレーム列のコンテンツを複数の新しい列に分割する方法

分類Dev

別のデータフレームの行番号に基づいて2列のデータフレームのコンテンツを変換する方法

分類Dev

別のデータフレームの行番号に基づいて2列のデータフレームのコンテンツを変換する方法

分類Dev

特定の行の値に応じて列をデータフレームに追加します(2)

分類Dev

1つのデータフレーム内の複数の列のコンテンツを比較し、ブール値を2番目のデータフレームに出力します

分類Dev

データフレームの列を分割し、それに応じて行を複製する方法は?

分類Dev

パンダ。2列のデータフレーム。交差行列を取得します(列#1からすべてに)

分類Dev

温度値に応じて増加するカウンター列をデータフレームに追加します(他の列)

分類Dev

Pandasの共通の列に基づいて、1つのデータフレームを複数のサブデータフレームに分割します

分類Dev

Pandasコンバーターを使用してデータフレーム列を複数の列に分割する方法

Related 関連記事

  1. 1

    Python Pandas:1つの列に沿って2つのデータフレームを比較し、別のデータフレームの両方のデータフレームの行のコンテンツを返します

  2. 2

    データフレーム列を2値化し、それに応じて他の列値を分割します

  3. 3

    pandas-データフレームの2つの別々の列の値に応じて列を作成します

  4. 4

    3つのデータフレームのコンテンツをRの1つの列にマージします(複数の列にまたがって)

  5. 5

    Pandasデータフレームのパターンに従って文字列列のコンテンツを変換します

  6. 6

    Pythonデータフレームのコンテンツを新しい列に分割する

  7. 7

    2列の範囲に応じて、新しい行をpandasデータフレームに挿入します

  8. 8

    Python Pandas:2つのcsv(データフレーム)の行を1つの列に沿って類似した値と比較し、類似した行(列)のコンテンツを返します

  9. 9

    pandasデータフレームに関数を適用して、他の列/セルに応じて列/セルのリストをスキャンします

  10. 10

    データフレームでテキストをゼロと1に変換して、2つの列のコンテンツを他の多くの列に分割する方法

  11. 11

    列Rのパターン変更に応じてデータフレームを転置します

  12. 12

    データフレームの列コンテンツにラベル列を挿入します

  13. 13

    条件に応じて、パンダデータフレームの特定の列の次の行を更新します

  14. 14

    パンダの特定の列に応じてデータフレーム間の違いを取得します

  15. 15

    同じデータフレーム内の別の列のコンテンツの条件に基づいて、データフレームに新しい列を追加します

  16. 16

    Python pandasデータフレームは、文字列の長さに基づいてコンテンツを変更します

  17. 17

    リストのコンテンツを「* \ n」でパンダのデータフレームに分割します

  18. 18

    2つの列に応じてデータフレームを分割し、サブグループにいくつかの操作を適用します

  19. 19

    列の値に応じて、データフレームをサブデータフレームに分割します

  20. 20

    単一のパンダデータフレーム列のコンテンツを複数の新しい列に分割する方法

  21. 21

    別のデータフレームの行番号に基づいて2列のデータフレームのコンテンツを変換する方法

  22. 22

    別のデータフレームの行番号に基づいて2列のデータフレームのコンテンツを変換する方法

  23. 23

    特定の行の値に応じて列をデータフレームに追加します(2)

  24. 24

    1つのデータフレーム内の複数の列のコンテンツを比較し、ブール値を2番目のデータフレームに出力します

  25. 25

    データフレームの列を分割し、それに応じて行を複製する方法は?

  26. 26

    パンダ。2列のデータフレーム。交差行列を取得します(列#1からすべてに)

  27. 27

    温度値に応じて増加するカウンター列をデータフレームに追加します(他の列)

  28. 28

    Pandasの共通の列に基づいて、1つのデータフレームを複数のサブデータフレームに分割します

  29. 29

    Pandasコンバーターを使用してデータフレーム列を複数の列に分割する方法

ホットタグ

アーカイブ