pandas入门——数据修改

来源:互联网 发布:超融合软件dell 编辑:程序博客网 时间:2024/06/03 12:46

数据修改

  • 修改特定值
# 导入pandas与numpy包import pandas as pdimport numpy as np# 创建时间序列数据date1 = pd.date_range("20170813",periods=6)df = pd.DataFrame(data=np.random.randint(3,9,size=(6,6)),columns=np.arange(6),index=date1)print(df)
            0   1   2   3   4   52017-08-13  3   7   4   5   4   52017-08-14  3   6   8   8   5   82017-08-15  5   5   4   6   6   52017-08-16  5   3   8   4   5   32017-08-17  3   4   6   7   7   42017-08-18  6   6   3   6   4   3
df.iloc[2,2] = 123456df.loc["2017-08-14",2] = 123456print(df)
            0   1   2   3   4   52017-08-13  3   7   4   5   4   52017-08-14  3   6   123456  8   5   82017-08-15  5   5   123456  6   6   52017-08-16  5   3   8   4   5   32017-08-17  3   4   6   7   7   42017-08-18  6   6   3   6   4   3
  • 将第一列中所有大于4的数修改成0
df[0][df[0] > 4]  = 0print(df)
            0   1   2   3   4   52017-08-13  3   7   4   5   4   52017-08-14  3   6   123456  8   5   82017-08-15  0   5   123456  6   6   52017-08-16  0   3   8   4   5   32017-08-17  3   4   6   7   7   42017-08-18  0   6   3   6   4   3
  • 给数据框增加一列
df[6] = np.nanprint(df)
            0   1   2   3   4   5   62017-08-13  3   7   4   5   4   5   NaN2017-08-14  3   6   123456  8   5   8   NaN2017-08-15  0   5   123456  6   6   5   NaN2017-08-16  0   3   8   4   5   3   NaN2017-08-17  3   4   6   7   7   4   NaN2017-08-18  0   6   3   6   4   3   NaN
  • 将series赋值给新增加的数列
df[7] = pd.Series(data=np.arange(6),index=pd.date_range("20170813",periods=6))print(df)
            0   1   2   3   4   5   6   72017-08-13  3   7   4   5   4   5   NaN 02017-08-14  3   6   123456  8   5   8   NaN 12017-08-15  0   5   123456  6   6   5   NaN 22017-08-16  0   3   8   4   5   3   NaN 32017-08-17  3   4   6   7   7   4   NaN 42017-08-18  0   6   3   6   4   3   NaN 5