[人工知能の概要] pandas はファイルを結合し、np は小数点以下の桁数を保持し、np データを pd.DataFrame データに変換し、DataFrame の列名を読み取り、DataFrame を csv ファイルに保存し、ファイルを削除します


1. np は小数点以下数桁のデータを保持します。

  • np.around メソッドを使用します。
import numpy as np
 
array = np.array([1.123456789, 2.23456, 4.5643])
print(np.around(array, 3))  # 保留三位小数,保留方式为四舍五入

2. npデータをpd.DataFrameデータに変換します

import numpy as np
import pandas as pd
dataset = [[1.458,1.254],[2.365,5.154],[2.365,7.356]]
data = np.array(dataset)
df = pd.DataFrame(data=data, columns=['pregnants','Plasma_glucose_concentration'] )

3. DataFrame の列名を読み取る

  • df.columns は Index を返します。これは tolist() または list(array) を通じてリストに変換できます。
data_demo = df.columns.tolist()
print(data_demo)

4. pandas スプライシングファイル

  • 行方向のスプライシング:
import pandas as pd
import numpy as np


df1 = pd.DataFrame(np.array([
    ['a', 1, 2],
    ['b', 3, 4],
    ['c', 5, 6]]),
    columns=['name', 'num11', 'num12'])
df2 = pd.DataFrame(np.array([
    ['a', 7, 8],
    ['b', 9, 10],
    ['c', 11, 12]]),
    columns=['name', 'num21', 'num22'])

df_result = pd.merge(df1, df2, on='name')
print(df_result)
  • 列方向のスプライシング:
  • concat を通じてデータフレームに行と列を追加できます。つまり、 concat は、特定の軸 (axis=0/1) に沿って複数の pandas オブジェクト (データフレーム/シリーズ) を 1 つにマージできます。
  • concat 構文: pandas.concat(objs, axis=0, join='outer',ignore_index=False)。
  • objs: リスト。コンテンツは DataFrame または Series にすることができ、混合することができます。
  • axis: デフォルト値は 0 で、これは行ごとの結合を意味し、1 に等しい場合は列ごとの結合を意味します。
  • 結合: マージ時のインデックスの位置合わせ。デフォルトは外部結合ですが、内部結合にすることもできます。join=inner は一致しない列を除外します
  • ignore_index: 元のデータ インデックスを無視するかどうか。
import pandas as pd
import numpy as np

dataset0 = [[1, 1.458,1.254],[2, 2.365,5.154],[3, 2.365,7.356]]
data0 = np.array(dataset0)
df0 = pd.DataFrame(data=data0, columns=['no','001','002'] )
dataset1 = [[1, 2.365,1.254],[2, 2.395,5.154],[3, 2.365,7.356]]
data1 = np.array(dataset1)
df1 = pd.DataFrame(data=data1, columns=['no','003','004'] )

df_result = pd.concat([df0, df1], axis=0, join='outer', ignore_index=True)
print(df_result)

5. DataFraemをcsvファイルに保存します

df.to_csv('../SeaDataset/03/03-17-19.csv')

6. ファイルを削除する

  • os.remove(ファイルパス) ファイルを削除します
import os
# 文件所在目录
path="./data"
# 文件名字
txt_name0="删除文件0.txt"
# os.path.join(path,txt_name0) 获得文件所在路径,并用 os.remove(文件路径) 删除

os.remove(os.path.join(path,txt_name0))

7. 特定のデータセットのコードを処理する

# 把文件进行拼接,并且强制所有数据保留三位小数,最终保存成类似 '../SeaDataset/05/data_05-17-19.csv' 的形式
# 注意: 中间会产生类似 '../SeaDataset/05/05-17-19.csv' 的中间文件, 试验完成要删掉
import numpy as np
import pandas as pd


# 合并文件
df1 = pd.read_csv('../SeaDataset/05/05-17.csv', header= 0, index_col= 0)
df2 = pd.read_csv('../SeaDataset/05/05-18-19.csv', header= 0, index_col= 0)

df = pd.concat([df1, df2], axis=0, join='outer', ignore_index= False)

df.to_csv('../SeaDataset/05/05-17-19.csv')


# 保留三位小数
df = pd.read_csv('../SeaDataset/05/05-17-19.csv', header= 0, index_col= 0)
# print(type(df.iloc[0,0]))
df_col = df.columns.tolist()
# print(df_col)
df_data = df.iloc[:,:].values
df_data = np.around(df_data, 3)
# print(type(df_data))
df_data = pd.DataFrame(data=df_data, columns=df_col)
# print(type(df_data.iloc[0,0]))
# print(df_data)

df = pd.read_csv('../SeaDataset/05/05-17-19.csv', header= 0)
df_index = df.iloc[:, 0]
# print(df_index)

df = pd.concat([df_index, df_data], axis= 1, join= 'outer', ignore_index=False)
# print(df)
# print(df.iloc[0,1])
# print(type(df.iloc[0,1]))
df.to_csv('../SeaDataset/05/data_05-17-19.csv', index=False)


# 最终验证是否符合原本的形状
df = pd.read_csv('../SeaDataset/05/data_05-17-19.csv', header= 0, index_col= 0)
print(df.iloc[0,0])   # 一个小数,表示的是温度
print(type(df.iloc[0,0])) #  应该是numpy.float
print(df) # 检查格式,数据数量

# 删除中间文件
os.remove('../SeaDataset_Init/03/03-17-19.csv')
  • バッチ処理用の for ループを導入するなど、改善を続けることができます。

おすすめ

転載: blog.csdn.net/qq_44928822/article/details/131560681