私は次の問題について助けをしたいと思います:パンツのデータフレームを持つナット
私は2つの心理学実験を行い、私は被験者から反応時間を取得しました。これらのデータはすべて、データフレーム内のさまざまな.xlsxファイル(実験ごとに1つのファイル)とPythonを使って提出されます。(.appendを通じて)すべてを含む単一の.xlsxファイルを作成しました 私のマスターファイルのインデックスはサブジェクトID
私が今問題にしているのは、12の科目があり、Pythonは自然の分類規則に従っていないようです...私が持っているのは、科目10,11,12が科目の前に来ることです1 - 9(これは私のデータを検索する方法を混乱させる)。 私は、このような方法でnatsortを使用しています
MASTER_DF_FLAT.index = natsorted(MASTER_DF_FLAT.index)
MASTER_DF_FV.index = natsorted(MASTER_DF_FV.index)
これは、インデックスの問題を修正しますが、行のデータが新しい順に従いません(エクセルであなたは、「選択範囲を拡張」することができますしそれを取り除く)。どのように私はこれを修正することができますどのような考え?
編集:ここでは、データが10+の被験者でフォーマットされた方法です:あなたが見ることができるように
subject block trial condition RT
1 1 1 1 0,677044666
1 1 2 12 0,556960872
1 1 3 2 0,51685685
1 1 4 5 0,766190078
RTSは変更されていない。ここ
subject block trial condition RT
10 1 1 1 0,677044666
10 1 2 12 0,556960872
10 1 3 2 0,51685685
10 1 4 5 0,766190078
と被写体1からのデータであり、 (他の値もそうではありませんでした)
ありがとうございました!
EDIT1:ここで私は自分のファイルを保存する方法である:
私はここに私のコードは正確である:)ことを実行します。
for f in files:
data = os.path.join(data_dir,f)
df = pd.read_excel(data)
df.set_index('subject', inplace = True)
concatenated = pd.concat([block, trial, condition, RT, SOA, acc, ISI], axis=1)
if 'FV' not in f:
flatDFs.append(concatenated)
else:
fvDFs.append(concatenated)
MASTER_DF_FLAT = pd.concat(flatDFs)
writerFlat = pd.ExcelWriter('MASTER_FILE_FLAT.xlsx')
MASTER_DF_FLAT.to_excel(writerFlat,'Sheet1')
writerFlat.save()
あなたが見ることができるように、私の.xlsxファイルのインデックスが実際にあります主題すべてうまく動作し、要素の順序です!
サンプルデータを表示してください。あなたのデータが数値ではなく文字列として読み込まれているようです。ちなみに、Excelではなく、CSVのようなプレーンテキスト形式を使うほうが良いでしょう。 – BrenBarn
完了。あなたはもっと情報が必要な場合私に教えてください:) –
インデックスが整数である限り、パンダは正しくソートする必要があります。 ['sort_index'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_index.html)を試しましたか? – Kartik