txtファイル内の構造化されていない行から値を取得するのが難しいです。アルファとベータは私のデータ参照のキーで、X_1、X_2、X_3はファイルから取得する必要がある変数です(実際のデータには192の変数があります)。txtファイル内の一連の行の間の値からDataFrameを構築する
各X_n(n = 1,2,3)の最後の値(空白で区切られています)をアルファとベータ値の各対の辞書に抽出します。多かれ少なかれ、このような3Dパネルを手に入れることができます。 (解析後)このようになりfile.txtはファイル内の文字列の desirable dataframe
ライン:
Alpha = 180
Beta = 0
X_1 3.34 5
X_3 4.34 7
Alpha = 180
Beta = 10
X_1 4.23 2
X_2 3.23 1
Alpha = 180
Beta = 20
X_2 3.23 9
.
.
.
.
Alpha = 180
Beta = 90
X_1 7.23 3
X_2 9.14 3
X_3 5.91 7
Alpha = 170
Beta = 0
X_1 7.63 3
X_2 4.84 2
X_3 8.01 8
.
.
(and so on)
私の目標は、私の知る限り」
Alpha Beta x_1 x_2 x_3
180 0 5 0 7
180 10 2 1 0
180 20 0 0 9
180 90 3 3 7
170 0 3 2 8
以下のような3Dパネルを作成することです私は試しました。私はしかし、私はすべてのアルファとベータ値のためにループのため、この機能を使用することができませんでした正規表現
readings = []
with open('file.txt') as inputfile:
for line in inputfile:
readings.append(line.strip())
x_1_list =[]
for r in readings:
if re.search('x_1,r')
c = re.split(r'\s+',r)[-1]
x_1_list.append(c)
else:
x_1_list.append(0.0)
を使用することによりX_1、X_2 X_3の値を取得することができます。
提案がありますか?
こんにちは@azalea実際のケースでは、すべてのx_nキーに空白で区切られた3つの値がありますか? erorrが "あまりにも多くの値をアンパックする"を生成しました。 ので: アルファ= 180 ベータ= 0 X_1 3.34 5 somenumber X_3 4.34 7 somenumber の代わり: アルファ= 180 ベータ= 0 X_1 3.34 5 X_3 4.34 7 ありがとう! –
'key、_、value = line.split()'行を 'key、_ value、_ = line.split()'に変更することは、行を空白で分割し、最初の値をkeyに割り当て、第3の値を値に、第2および第4の値を使用しない変数「_」に変換する。 – azalea
HI @ azalea、それを持っています!私は前に混乱したウィット "_"でした。それは今解決した。どうもありがとう! –