买服务器网站phpcms v9网站性能优化

当前位置: 首页 > news >正文

买服务器网站,phpcms v9网站性能优化,wordpress 主题 欣赏,青岛营销网站建设目录 简介#xff1a; 一#xff0c;1.1来自Series字典或字典 1.2 来自ndarray或者列表的字典#xff1a; 1.3来自结构化或记录数组; 1.4来自字典列表#xff1a; 1.4来自元组的字典#xff1a; 1.5 来自Series 二#xff0c;代替构造函数#xff1a; 2.1DataFram…目录 简介 一1.1来自Series字典或字典 1.2 来自ndarray或者列表的字典 1.3来自结构化或记录数组; 1.4来自字典列表 1.4来自元组的字典 1.5 来自Series 二代替构造函数 2.1DataFrame.from_dict 2.2DataFrame.from_records 三列表的选择删除添加 四在方法链中分配新列  五索引 六数据对齐 简介 本片文章我们来介绍pandas的另一个数据类型DataFrame DataFrame是一个二维标记数据结构其中包含可能不同类型的列。您可以将其视为电子表格或SQL表或者Series对象的字典。它通常是最常用的pandas对象。与Series一样DataFrame接受许多不同类型的输入 一维ndarray列表字典或字典的Series 二维numpy.ndarray 结构化或记录数组 一个Series 其他DataFrame等 除了数据之外您还可以选择传递索引行标签和列列标签参数。如果您传递索引和/或列则可以保证生成的DataFrame的索引和/或列。因此Series的字典加上特定索引将丢弃所有与传递的索引不匹配的数据。如果未传递轴标签他们将根据常识规则从输入数据构建。 一1.1来自Series字典或字典 生成的索引将是各个系列的索引的并集。如果有任何嵌套字典他们将首先转化为系列。如果每日有传递列则列将是字典键的有序列表。 d{ one:pd.Series([1.0,2.0,3.0],index[a,b,c]), two:pd.Series([1.0,2.0,3.0,4.0],index[a,b,c,d]), } df pd.DataFrame(d) one two a 1.0 1.0 b 2.0 2.0 c 3.0 3.0 d NaN 4.0pd.DataFrame(d, index[d, b, a]) one two d NaN 4.0 b 2.0 2.0 a 1.0 1.0pd.DataFrame(d, index[d, b, a], columns[two, three])two three d 4.0 NaN b 2.0 NaN a 1.0 NaN 可以通过访问index喝columns属性来分别访问行和列 标签 df.index Out: Index([a, b, c, d], dtypeobject) df.columns Out: Index([one, two], dtypeobject) 1.2 来自ndarray或者列表的字典 ndarray的长度必须相同。如果传递索引他也必须与数组的长度相同如果没有传递索引结果将为range(n)n为数组长度。 d {one: [1.0, 2.0, 3.0, 4.0], two: [4.0, 3.0, 2.0, 1.0]} pd.DataFrame(d)pd.DataFrame(d, index[a, b, c, d]) one two 0 1.0 4.0 1 2.0 3.0 2 3.0 2.0 3 4.0 1.0 one two a 1.0 4.0 b 2.0 3.0 c 3.0 2.0 d 4.0 1.0 1.3来自结构化或记录数组; 这种情况的处理方式与数组字典相同 data np.zeros((2,), dtype[(A, i4), (B, f4), (C, a10)]) data[:] [(1, 2.0, Hello), (2, 3.0, World)] pd.DataFrame(data)    A    B         C 0  1  2.0  bHello 1  2  3.0  bWorld pd.DataFrame(data, index[first, second])         A    B         C first   1  2.0  bHello second  2  3.0  bWorld  pd.DataFrame(data, columns[C, A, B])           C  A    B 0  bHello  1  2.0 1  bWorld  2  3.0 1.4来自字典列表 data2 [{a: 1, b: 2}, {a: 5, b: 10, c: 20}] pd.DataFrame(data2)    a   b     c 0  1   2   NaN 1  5  10  20.0 pd.DataFrame(data2, index[first, second])         a   b     c first   1   2   NaN second  5  10  20.0 pd.DataFrame(data2, columns[a, b])    a   b 0  1   2 1  5  10 1.4来自元组的字典 可以通过传递元组字典来自动创建MultiIndexed frame pd.DataFrame(     {       (a, b): {(A, B): 1, (A, C): 2},       (a, a): {(A, C): 3, (A, B): 4},       (a, c): {(A, B): 5, (A, C): 6},      (b, a): {(A, C): 7, (A, B): 8},      (b, b): {(A, D): 9, (A, B): 10},       }    )        a              b              b    a    c    a     b A B  1.0  4.0  5.0  8.0  10.0   C  2.0  3.0  6.0  7.0   NaN   D  NaN  NaN  NaN  NaN   9.0 1.5 来自Series 结果将是一个与输入Series具有相同索引的DataFrame并且其中一列的名称是Series的原始名称仅当 为提供其他列名称时 ser pd.Series(range(3), indexlist(abc), nameser) pd.DataFrame(ser)    ser a    0 b    1 c    2 二代替构造函数 2.1DataFrame.from_dict DataFrame.from_dict()接受一个字典或一个近似数组序列的字典并返回一个DataFrame。他的操作类似于DataFrame构造函数除了默认 orient参数是columns之外还可以设置该参数index使用字典键作为行标签。 pd.DataFrame.from_dict(dict([(A, [1, 2, 3]), (B, [4, 5, 6])]))    A  B 0  1  4 1  2  5 2  3  6 通过orientindex 键将是行标签。在这种情况下还可以传递所需列的名称。 pd.DataFrame.from_dict(       dict([(A, [1, 2, 3]), (B, [4, 5, 6])]),       orientindex,       columns[one, two, three],    one  two  three A    1    2      3 B    4    5      6 2.2DataFrame.from_records DataFrame.from_records()接收元组列表或具有结构化数据类型的ndarray。他的工作方式与普通DataFrame构造函数类似只是生成的DataFrame 索引可能是结构化数据类型的特定字段。 data array([(1, 2., bHello), (2, 3., bWorld)],       dtype[(A, i4), (B, f4), (C, S10)]) pd.DataFrame.from_records(data, indexC)           A    B C                bHello  1  2.0 bWorld  2  3.0 三列表的选择删除添加 可以将DataFrame语义视为相似索引Series对象的字典。获取设置和删除列的语法与类似的dict操作相同 df[one] a    1.0 b    2.0 c    3.0 d    NaN Name: one, dtype: float64  df[three] df[one] * df[two]  df[flag] df[one] 2  df    one  two  three   flag a  1.0  1.0    1.0  False b  2.0  2.0    4.0  False c  3.0  3.0    9.0   True d  NaN  4.0    NaN  False 也可以像字典一样删除或弹出列 del df[two]  three df.pop(three) df    one   flag a  1.0  False b  2.0  False c  3.0   True d  NaN  False 当插入标量值时他自然会传播以填充列 df[foo] bar  df    one   flag  foo a  1.0  False  bar b  2.0  False  bar c  3.0   True  bar d  NaN  False  bar 当插入与Series不具有相同索引的DataFrame时他将符合DataFrame的索引 Idf[one_trunc] df[one][:2] I df    one   flag  foo  one_trunc a  1.0  False  bar        1.0 b  2.0  False  bar        2.0 c  3.0   True  bar        NaN d  NaN  False  bar        NaN 四在方法链中分配新列  DataFrame中有一种assign()方法可以轻松创建可能从现有列派生的新列 iris pd.read_csv(data/iris.data)  iris.head()    SepalLength  SepalWidth  PetalLength  PetalWidth         Name 0          5.1         3.5          1.4         0.2  Iris-setosa 1          4.9         3.0          1.4         0.2  Iris-setosa 2          4.7         3.2          1.3         0.2  Iris-setosa 3          4.6         3.1          1.5         0.2  Iris-setosa 4          5.0         3.6          1.4         0.2  Iris-setosa iris.assign(sepal_ratioiris[SepalWidth] / iris[SepalLength]).head()    SepalLength  SepalWidth  PetalLength  PetalWidth         Name  sepal_ratio 0          5.1         3.5          1.4         0.2  Iris-setosa     0.686275 1          4.9         3.0          1.4         0.2  Iris-setosa     0.612245 2          4.7         3.2          1.3         0.2  Iris-setosa     0.680851 3          4.6         3.1          1.5         0.2  Iris-setosa     0.673913 4          5.0         3.6          1.4         0.2  Iris-setosa     0.720000 在上面的示例中我们插入了一个预先计算的值。我们还可以传入一个只有一个参数的函数以便在分配给的DataFrame上进行计算。 iris.assign(sepal_ratiolambda x: (x[SepalWidth] / x[SepalLength])).head()    SepalLength  SepalWidth  PetalLength  PetalWidth         Name  sepal_ratio 0          5.1         3.5          1.4         0.2  Iris-setosa     0.686275 1          4.9         3.0          1.4         0.2  Iris-setosa     0.612245 2          4.7         3.2          1.3         0.2  Iris-setosa     0.680851 3          4.6         3.1          1.5         0.2  Iris-setosa     0.673913 4          5.0         3.6          1.4         0.2  Iris-setosa     0.720000 assign()始终返回数据的副本保持原始的DataFrame不变。 五索引 选择语法结果选择列df[col]Series按标签选择行df.loc[label]Series按整数位置选择行df.iloc[loc]Series切片行df[5:10]DataFrame通过布尔向量选择行df[bool_vec]DataFrame 例如行选择返回一个Series其索引是DataFrame的列 df.loc[b] one            2.0 bar            2.0 flag         False foo            bar one_trunc      2.0 Name: b, dtype: object  df.iloc[2] one           3.0 bar           3.0 flag         True foo           bar one_trunc     NaN Name: c, dtype: object 六数据对齐 对象之间的数据对齐会在列和索引DataFrame上自动对齐同样生成的对象将具有列标签和行标签的并集 df pd.DataFrame(np.random.randn(10, 4), columns[A, B, C, D])In [95]: df2 pd.DataFrame(np.random.randn(7, 3), columns[A, B, C])  df df2           A         B         C   D 0  0.045691 -0.014138  1.380871 NaN 1 -0.955398 -1.501007  0.037181 NaN 2 -0.662690  1.534833 -0.859691 NaN 3 -2.452949  1.237274 -0.133712 NaN 4  1.414490  1.951676 -2.320422 NaN 5 -0.494922 -1.649727 -1.084601 NaN 6 -1.047551 -0.748572 -0.805479 NaN 7       NaN       NaN       NaN NaN 8       NaN       NaN       NaN NaN 9       NaN       NaN       NaN NaN DataFrame和Series之间执行操作时默认行为是对齐列上的索引从而按行广播 df - df.iloc[0]           A         B         C         D 0  0.000000  0.000000  0.000000  0.000000 1 -1.359261 -0.248717 -0.453372 -1.754659 2  0.253128  0.829678  0.010026 -1.991234 3 -1.311128  0.054325 -1.724913 -1.620544 4  0.573025  1.500742 -0.676070  1.367331 5 -1.741248  0.781993 -1.241620 -2.053136 6 -1.240774 -0.869551 -0.153282  0.000430 7 -0.743894  0.411013 -0.929563 -0.282386 8 -1.194921  1.320690  0.238224 -1.482644 9  2.293786  1.856228  0.773289 -1.446531