2017-08-10 9 views
1

私は次のような.txtファイルからデータを読み込んでいますが、それぞれの括弧の3番目の項目をボトム。シリーズオブジェクトには分割属性がありません - テキストファイルからデータを読み込みます

data = data.iloc[0, ::4]という行では、4つのデータポイントのうち3つを削除していました(私は思っています)。

しかし、今ではすべてのデータポイントを維持しようとしています。だから私が行を削除するとき。 data = data.iloc[0, ::4]、私は次のエラーが表示されます

"'Series' object has no attribute 'split'", 'occurred at index 0'

その行を削除すると、私が受けていますエラーを与えるだろう、なぜ私は理解していません。つまり、各括弧の3番目の項目をすべて抽出し、pandasDataFrameに保存したいと思います。しかし、私がラインを削除しようとすると、data = data.iloc[0, ::4]、私は(上記のように)スローされたエラーを取得します。

ありがとうございます!データの

enter image description here

data = pd.read_csv("C:\\Users\\Desktop\\data_test9.txt", sep="\[|\]\[|\]",engine = 'python', header = None) 
data = data.iloc[0, ::4] 
data = data.astype(str).apply(lambda x: x.split(',')[-1]).astype(float) 
data.pop(0) 
xar = range(len(data) 
yar = pd.DataFrame(data) 

ワンピース:

[0.0, -0.01953125, -0.0009765625][0.0, -0.01953125, -0.0009765625][0.0, -0.01953125, -0.0009765625][0.0, -0.01953125, -0.0009765625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0078125, -0.912109375, -0.00390625][0.0087890625, -0.978515625, -0.00390625][0.0087890625, -0.978515625, -0.00390625][0.0087890625, -0.978515625, -0.00390625][0.0087890625, -0.978515625, -0.00390625][0.0087890625, -0.978515625, -0.00390625][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9521484375, -0.0029296875][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.955078125, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0078125, -0.9560546875, -0.0048828125][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0087890625, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0078125, -0.9560546875, -0.0029296875][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0068359375, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625][0.0078125, -0.9560546875, -0.00390625] 

編集1:次のように 私のデータが保存されている:

while True: 
    delay(DELAY_INTERVAL) 

    file = open("C:\\Users\\Desktop\\demo3.txt", "a") 
    file.writelines(str(convert(readField()))) 
    file.flush() 
    file.close() 
+0

基本的には、データを保存するフォーマットを再考する必要があります。これは 'print'ダンプのようです。 'csv'形式などを使用してください。 –

+0

だから、あなたは基本的には、ある種のデータ構造の 'str'表現をテキストファイルにダンプすることが基本的だと思っていました。 *これをしないでください*。あなたがしようとしているように、データ構造を解析する必要があります。 'csv'のように受け入れられ、サポートされている形式を使用してください。その後、解析ロジックを書く必要はありません。 –

+0

私は 'csvwriter'を使うことを考えています。これは良いアイデアですか? – Gary

答えて

1

dataがあるので210になるので、.applyに関数を渡すと、関数に引数としてpd.Seriesが渡されます。 pd.Seriesには.splitメソッドがありません。あなたが行うと:

data = data.iloc[0, ::4] 

あなたは最初から始まる、最初の行とすべての4つの列を選択しています。これはpd.Seriesを返します。そう考える:

In [16]: df 
Out[16]: 
    a b c d e 
0 -10 17 17 14 -10 
1 2 10 0 4 -5 
2 16 10 1 -9 -6 
3 12 -6 10 5 3 
4 9 10 -4 10 3 
5 -8 16 4 17 0 
6 9 12 4 17 -5 
7 19 17 9 2 19 
8 1 4 10 10 12 
9 12 -1 9 -5 10 
10 -1 -3 4 11 5 
11 19 4 6 16 3 
12 5 19 -1 1 15 
13 18 2 15 0 7 
14 3 10 15 6 15 
15 8 12 3 -6 8 
16 14 0 -3 6 2 
17 -1 -5 -5 -3 16 
18 -2 12 17 17 13 
19 18 4 19 14 4 

In [17]: df.iloc[0, ::4] 
Out[17]: 
a -10 
e -10 
Name: 0, dtype: int64 

In [18]: type(df.iloc[0, ::4]) 
Out[18]: pandas.core.series.Series 

シリーズにあなた.apply機能は、それは、なぜあなたlambda作品それぞれの値がstrであることから、ある関数にシリーズの各を通過したときと、文字列.splitメソッドを持っています。

だから、おそらくあなたはしたい: ごとに4行を選択し、データフレームを返す

In [19]: df.iloc[::4,:] 
Out[19]: 
    a b c d e 
0 -10 17 17 14 -10 
4 9 10 -4 10 3 
8 1 4 10 10 12 
12 5 19 -1 1 15 
16 14 0 -3 6 2 

In [20]: type(df.iloc[::4,:]) 
Out[20]: pandas.core.frame.DataFrame 

+0

'df.iloc [:: 4、:]'は依然として同じエラーを投げました。私のデータが保存される方法を変更することに関するあなたのコメント - 私はどのように私のデータがpythonスクリプトから保存されているが含まれます。あなたはそれを見て、私がそれをより良くする方法についてのフィードバックを提供できますか? – Gary

+0

@Garyはい、あなたが読んで理解していれば、*がデータフレーム*を返すので、エラーをスローすると予想されると言っていたことを理解していれば。エラーが発生しない限り、データフレームをランダムにスライスしてダイシングするのではなく、ジャンクを表現しているのではなく、何をしようとしているのかを把握する必要があります。 –

関連する問題