文字列をコンマで分割し、パンダのデータフレームに挿入する方法

Dhar_

たとえば、一連の文字列を返すforループを持つ関数があります。

58、冥王星172、ウノ5、桃

pandasデータフレームの1つの列の文字列の最初の部分(数値)と2番目の列の2番目の部分(果物)を取得するにはどうすればよいですか。列には「amount」と「fruit」という名前を付ける必要があります。

これまでのコードは次のとおりです。

regex = r"(\d+)( ML/year )(in the |the )([\w \/\(\)]+)"
for line in finalText.splitlines():
    matches = re.finditer(pattern, line)

    for matchNum, match in enumerate(matches, start=1):
        print (match.group(1) +","+ match.group(4))

reを使用して、大きなテキストブロックから必要なデータを除外していますが、今のところ、コンソールに出力するだけで、データフレームに入れる必要があります。

基本的に、そのコードの最後のprintステートメントを変更する必要があるため、印刷する代わりにデータフレームに挿入します。

最終的なテキストの例は次のとおりです。

(a)ナシ地域で58 ML / Y(b)リンゴ地域で64 ML / Y

プレーンテキストです

ジョー・フェルンズ

あなたのためのより簡単な解決策を考え出すことに取り組む必要がありました。\ W正規表現を使用して、文字列から()\を削除します。

あなたの文字列のパターンが常になる場合

(x)## ML/Y in the fruit region (y) ## ML/Y in the fruit region

次に、このコードを使用します。リストから()\を削除し、より簡単なリストを提供します。リストの3番目、8番目、13番目、18番目の位置を使用して、必要なものを取得します。

import pandas as pd
import re

finalText = '(a)58 ML/Y in the pear region (b) 64 ML/Y in the apple region'

df = pd.DataFrame(data=None, columns=['amount','fruit'])

for line in finalText.splitlines():
    matches = re.split(r'\W',line)
    df.loc[len(df)] = [matches[2],matches[7]]
    df.loc[len(df)] = [matches[12],matches[17]]

print(df)

この結果、次のようになりました。

  amount  fruit
0     58   pear
1     64  apple

これを行う別の方法は、findallを使用することです。

for line in finalText.splitlines():
    print (line)
    m = re.findall(r'\w+',line)
    print (m)
    matches = re.findall(r'\w+',line)
    df.loc[len(df)] = [matches[1],matches[6]]
    df.loc[len(df)] = [matches[9],matches[14]]

print(df)

上記と同じ結果

  amount  fruit
0     58   pear
1     64  apple

古いコード

これを試して、うまくいくかどうか教えてください。

import pandas as pd

df = pd.DataFrame(data=None, columns=['amount','fruit'])

regex = r"(\d+)( ML/year )(in the |the )([\w \/\(\)]+)"
for line in finalText.splitlines():
    matches = re.finditer(pattern, line)

    for matchNum, match in enumerate(matches, start=1):
        df[matchNum] = [match.group(1) , match.group(4)]

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダのデータフレーム行をコンマ区切りの文字列に変換する方法

分類Dev

テキストから文字列を分割してデータフレームに入力するパンダ

分類Dev

パンダのデータフレームにデータフレームを挿入する方法

分類Dev

データフレーム文字列列をパターンなしで複数の列に分割する

分類Dev

パンダデータフレームの先頭にミニ単位行列(行と列)を挿入する方法

分類Dev

パンダのデータフレームに文字列を入力する

分類Dev

パンダデータフレーム - 複数の列に分割する文字列

分類Dev

パンダのデータフレームのセルにあるリストに文字列値を挿入する方法は?

分類Dev

条件に基づいてパンダデータフレーム列の特殊文字の文字列を分割する

分類Dev

ランダムなデータ文字列を新しいデータフレーム列に挿入します

分類Dev

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

分類Dev

パンダデータフレームの文字列を逆にする方法は?

分類Dev

matplotlib画像をパンダのデータフレームに挿入します

分類Dev

文字列を分割し、パンダデータフレームの列名として割り当てる方法は?

分類Dev

セルの最初の文字の後にパンダのデータフレーム列を(2つに)分割する

分類Dev

文字列列の値に基づいてパンダのデータフレームを分割します

分類Dev

各列の値に等しい行数でパンダデータフレームを分割する

分類Dev

目的のインデックスでパンダデータフレームに新しい行を挿入する方法

分類Dev

パンダ:データフレームの列を別々の行に分割する

分類Dev

パンダのデータフレーム列を行の値で分割する

分類Dev

パンダの2つのデータフレームを比較して入力を分割する方法

分類Dev

パンダデータフレーム:1と0の列を新しい列にマージする方法

分類Dev

1つ以上の列に基づいてパンダデータフレームに値を追加/挿入する

分類Dev

区切り文字の複数の列をパンダデータフレームの行に分割する

分類Dev

パンダで計算をループするためにリストからデータフレーム式に文字列を挿入する

分類Dev

JSON要素をパンダデータフレームの列に分割します

分類Dev

パンダで配列を特定のデータフレーム形式にフォーマットする方法は?

分類Dev

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

分類Dev

パンダのデータフレーム文字列を個別の行に分割する

Related 関連記事

  1. 1

    パンダのデータフレーム行をコンマ区切りの文字列に変換する方法

  2. 2

    テキストから文字列を分割してデータフレームに入力するパンダ

  3. 3

    パンダのデータフレームにデータフレームを挿入する方法

  4. 4

    データフレーム文字列列をパターンなしで複数の列に分割する

  5. 5

    パンダデータフレームの先頭にミニ単位行列(行と列)を挿入する方法

  6. 6

    パンダのデータフレームに文字列を入力する

  7. 7

    パンダデータフレーム - 複数の列に分割する文字列

  8. 8

    パンダのデータフレームのセルにあるリストに文字列値を挿入する方法は?

  9. 9

    条件に基づいてパンダデータフレーム列の特殊文字の文字列を分割する

  10. 10

    ランダムなデータ文字列を新しいデータフレーム列に挿入します

  11. 11

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

  12. 12

    パンダデータフレームの文字列を逆にする方法は?

  13. 13

    matplotlib画像をパンダのデータフレームに挿入します

  14. 14

    文字列を分割し、パンダデータフレームの列名として割り当てる方法は?

  15. 15

    セルの最初の文字の後にパンダのデータフレーム列を(2つに)分割する

  16. 16

    文字列列の値に基づいてパンダのデータフレームを分割します

  17. 17

    各列の値に等しい行数でパンダデータフレームを分割する

  18. 18

    目的のインデックスでパンダデータフレームに新しい行を挿入する方法

  19. 19

    パンダ:データフレームの列を別々の行に分割する

  20. 20

    パンダのデータフレーム列を行の値で分割する

  21. 21

    パンダの2つのデータフレームを比較して入力を分割する方法

  22. 22

    パンダデータフレーム:1と0の列を新しい列にマージする方法

  23. 23

    1つ以上の列に基づいてパンダデータフレームに値を追加/挿入する

  24. 24

    区切り文字の複数の列をパンダデータフレームの行に分割する

  25. 25

    パンダで計算をループするためにリストからデータフレーム式に文字列を挿入する

  26. 26

    JSON要素をパンダデータフレームの列に分割します

  27. 27

    パンダで配列を特定のデータフレーム形式にフォーマットする方法は?

  28. 28

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

  29. 29

    パンダのデータフレーム文字列を個別の行に分割する

ホットタグ

アーカイブ