参考学习资料:http://pandas.pydata.org

1.什么是Pandas?

Pandas的名称来自于面板数据(panel data)和Python数据分析(data analysis)。

Pandas是一个强大的分析结构化数据的工具集,基于NumPy构建,提供了 高级数据结构 和 数据操作工具,它是使Python成为强大而高效的数据分析环境的重要因素之一。

  • 一个强大的分析和操作大型结构化数据集所需的工具集

  • 基础是NumPy,提供了高性能矩阵的运算

  • 提供了大量能够快速便捷地处理数据的函数和方法

  • 应用于数据挖掘,数据分析

  • 提供数据清洗功能

2.Pandas的数据结构

  1. import pandas as pd

Pandas有两个最主要也是最重要的数据结构: Series 和 DataFrame

Series

Series是一种类似于一维数组的 对象,由一组数据(各种NumPy数据类型)以及一组与之对应的索引(数据标签)组成。

  • 类似一维数组的对象
  • 由数据和索引组成
    • 索引(index)在左,数据(values)在右
    • 索引是自动创建的

series

1. 通过list构建Series

  • 示例代码:
  1. import pandas as pd
  2. ser_obj = pd.Series(range(10))
  3.  
  4. # 通过list构建Series
  5. ser_obj = pd.Series(range(10, 20))
  6. print(ser_obj.head(3))
  7.  
  8. print(ser_obj)
  9.  
  10. print(type(ser_obj))
  • 运行结果:
  1. 0 0
  2. 1 1
  3. 2 2
  4. 3 3
  5. 4 4
  6. 5 5
  7. 6 6
  8. 7 7
  9. 8 8
  10. 9 9
  11. dtype: int64
  12.  
  13. 0 10
  14. 1 11
  15. 2 12
  16. dtype: int64
  17.  
  18. 0 10
  19. 1 11
  20. 2 12
  21. 3 13
  22. 4 14
  23. 5 15
  24. 6 16
  25. 7 17
  26. 8 18
  27. 9 19
  28. dtype: int64
  29.  
  30. <class 'pandas.core.series.Series'>

2. 获取数据和索引

ser_obj.index 和 ser_obj.values

  • 示例代码:
  1. # 获取数据
  2. print(ser_obj.values)
  3.  
  4. # 获取索引
  5. print(ser_obj.index)
  • 运行结果:
  1. [10 11 12 13 14 15 16 17 18 19]
  2. RangeIndex(start=0, stop=10, step=1)

3. 通过索引获取数据

ser_obj[idx]

  1. #通过索引获取数据
  2. print(ser_obj[0])
  3. print(ser_obj[8])
  • 运行结果:
  1. 10
  2. 18

4. 索引与数据的对应关系不被运算结果影响

  • 示例代码:
  1. # 索引与数据的对应关系不被运算结果影响
  2. print(ser_obj * 2)
  3. print(ser_obj > 15)
  • 运行结果:
  1. 0 20
  2. 1 22
  3. 2 24
  4. 3 26
  5. 4 28
  6. 5 30
  7. 6 32
  8. 7 34
  9. 8 36
  10. 9 38
  11. dtype: int64
  12.  
  13. 0 False
  14. 1 False
  15. 2 False
  16. 3 False
  17. 4 False
  18. 5 False
  19. 6 True
  20. 7 True
  21. 8 True
  22. 9 True
  23. dtype: bool

5. 通过dict构建Series

  • 示例代码:
  1. # 通过dict构建Series
  2. year_data = {2001: 17.8, 2002: 20.1, 2003: 16.5}
  3. ser_obj2 = pd.Series(year_data)
  4. print(ser_obj2.head())
  5. print(ser_obj2.index)
  • 运行结果:
  1. 2001 17.8
  2. 2002 20.1
  3. 2003 16.5
  4. dtype: float64
  5. Int64Index([2001, 2002, 2003], dtype='int64')

name属性

对象名:ser_obj.name

对象索引名:ser_obj.index.name

  • 示例代码:
  1. # name属性
  2. ser_obj2.name = 'temp'
  3. ser_obj2.index.name = 'year'
  4. print(ser_obj2.head())
  • 运行结果:
  1. year
  2. 2001 17.8
  3. 2002 20.1
  4. 2003 16.5
  5. Name: temp, dtype: float64

DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同类型的值。DataFrame既有行索引也有列索引,它可以被看做是由Series组成的字典(共用同一个索引),数据是以二维结构存放的。

  • 类似多维数组/表格数据 (如,excel, R中的data.frame)
  • 每列数据可以是不同的类型
  • 索引包括列索引和行索引

 

1. 通过ndarray构建DataFrame

  • 示例代码:
  1. import numpy as np
  2.  
  3. # 通过ndarray构建DataFrame
  4. array = np.random.randn(5,4)
  5. print(array)
  6.  
  7. df_obj = pd.DataFrame(array)
  8. print(df_obj.head())
  • 运行结果:
  1. [[ 0.83500594 -1.49290138 -0.53120106 -0.11313932]
  2. [ 0.64629762 -0.36779941 0.08011084 0.60080495]
  3. [-1.23458522 0.33409674 -0.58778195 -0.73610573]
  4. [-1.47651414 0.99400187 0.21001995 -0.90515656]
  5. [ 0.56669419 1.38238348 -0.49099007 1.94484598]]
  6.  
  7. 0 1 2 3
  8. 0 0.835006 -1.492901 -0.531201 -0.113139
  9. 1 0.646298 -0.367799 0.080111 0.600805
  10. 2 -1.234585 0.334097 -0.587782 -0.736106
  11. 3 -1.476514 0.994002 0.210020 -0.905157
  12. 4 0.566694 1.382383 -0.490990 1.944846

2.通过dict构建DataFrame

  • 示例代码:
  1. # 通过dict构建DataFrame
  2. dict_data = {'A': 1,
  3. '),
  4. 'C': pd.Series(1, index=list(range(4)),dtype='float32'),
  5. 'D': np.array([3] * 4,dtype='int32'),
  6. 'E': ["Python","Java","C++","C"],
  7. 'F': 'ITCast' }
  8. #print dict_data
  9. df_obj2 = pd.DataFrame(dict_data)
  10. print(df_obj2)
  • 运行结果:
  1. A B C D E F
  2. 0 1 2017-04-26 1.0 3 Python ITCast
  3. 1 1 2017-04-26 1.0 3 Java ITCast
  4. 2 1 2017-04-26 1.0 3 C++ ITCast
  5. 3 1 2017-04-26 1.0 3 C ITCast

3. 通过列索引获取列数据(Series类型)

df_obj[col_idx] 或 df_obj.col_idx

  • 示例代码:
  1. # 通过列索引获取列数据
  2. print(df_obj2['A'])
  3. print(type(df_obj2['A']))
  4.  
  5. print(df_obj2.A)
  • 运行结果:
  1. 0 1.0
  2. 1 1.0
  3. 2 1.0
  4. 3 1.0
  5. Name: A, dtype: float64
  6. <class 'pandas.core.series.Series'>
  7. 0 1.0
  8. 1 1.0
  9. 2 1.0
  10. 3 1.0
  11. Name: A, dtype: float64

4. 增加列数据

df_obj[new_col_idx] = data

类似Python的 dict添加key-value

  • 示例代码:
  1. # 增加列
  2. df_obj2['G'] = df_obj2['D'] + 4
  3. print(df_obj2.head())
  • 运行结果:
  1. A B C D E F G
  2. 0 1.0 2017-01-02 1.0 3 Python ITCast 7
  3. 1 1.0 2017-01-02 1.0 3 Java ITCast 7
  4. 2 1.0 2017-01-02 1.0 3 C++ ITCast 7
  5. 3 1.0 2017-01-02 1.0 3 C ITCast 7

5. 删除列

del df_obj[col_idx]

  • 示例代码:
  1. # 删除列
  2. del(df_obj2['G'] )
  3. print(df_obj2.head())
  • 运行结果:
  1. A B C D E F
  2. 0 1.0 2017-01-02 1.0 3 Python ITCast
  3. 1 1.0 2017-01-02 1.0 3 Java ITCast
  4. 2 1.0 2017-01-02 1.0 3 C++ ITCast
  5. 3 1.0 2017-01-02 1.0 3 C ITCast

3.Pandas的索引操作

索引对象Index

1.Series和DataFrame中的索引都是Index对象

  • 示例代码:
  1. print(type(ser_obj.index))
  2. print(type(df_obj2.index))
  3.  
  4. print(df_obj2.index)
  • 运行结果:
  1. <class 'pandas.indexes.range.RangeIndex'>
  2. <class 'pandas.indexes.numeric.Int64Index'>
  3. Int64Index([0, 1, 2, 3], dtype='int64')

2. 索引对象不可变,保证了数据的安全

  • 示例代码:
  1. # 索引对象不可变
  2. df_obj2.index[0] = 2
  • 运行结果:
  1. ---------------------------------------------------------------------------
  2. TypeError Traceback (most recent call last)
  3. <ipython-input-23-7f40a356d7d1> in <module>()
  4. 1 # 索引对象不可变
  5. ----> 2 df_obj2.index[0] = 2
  6.  
  7. /Users/Power/anaconda/lib/python3.6/site-packages/pandas/indexes/base.py in __setitem__(self, key, value)
  8. 1402
  9. 1403 def __setitem__(self, key, value):
  10. -> 1404 raise TypeError("Index does not support mutable operations")
  11. 1405
  12. 1406 def __getitem__(self, key):
  13.  
  14. TypeError: Index does not support mutable operations

常见的Index种类

Index,索引
Int64Index,整数索引
MultiIndex,层级索引
DatetimeIndex,时间戳类型

Series索引

1. index 指定行索引名

  • 示例代码:
  1. ser_obj = pd.Series(range(5), index = ['a', 'b', 'c', 'd', 'e'])
  2. print(ser_obj.head())
  • 运行结果:
  1. a 0
  2. b 1
  3. c 2
  4. d 3
  5. e 4
  6. dtype: int64

2. 行索引

ser_obj[‘label’], ser_obj[pos]

  • 示例代码:
  1. # 行索引
  2. print(ser_obj['b'])
  3. print(ser_obj[2])
  • 运行结果:
  1. 1
  2. 2

3. 切片索引

ser_obj[2:4], ser_obj[‘label1’: ’label3’]

注意,按索引名切片操作时,是包含终止索引的。

  • 示例代码:
  1. # 切片索引
  2. print(ser_obj[1:3])
  3. print(ser_obj['b':'d'])
  • 运行结果:
  1. b 1
  2. c 2
  3. dtype: int64
  4. b 1
  5. c 2
  6. d 3
  7. dtype: int64

4.不连续索引

ser_obj[[‘label1’, ’label2’, ‘label3’]]

  • 示例代码:
  1. # 不连续索引
  2. print(ser_obj[[0, 2, 4]])
  3. print(ser_obj[['a', 'e']])
  • 运行结果:
  1. a 0
  2. c 2
  3. e 4
  4. dtype: int64
  5. a 0
  6. e 4
  7. dtype: int64

5. 布尔索引

  • 示例代码:
  1. # 布尔索引
  2. ser_bool = ser_obj > 2
  3. print(ser_bool)
  4. print(ser_obj[ser_bool])
  5.  
  6. print(ser_obj[ser_obj > 2])
  • 运行结果:
  1. a False
  2. b False
  3. c False
  4. d True
  5. e True
  6. dtype: bool
  7. d 3
  8. e 4
  9. dtype: int64
  10. d 3
  11. e 4
  12. dtype: int64

DataFrame索引

1. columns 指定列索引名

  • 示例代码:
  1. import numpy as np
  2.  
  3. df_obj = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd'])
  4. print(df_obj.head())
  • 运行结果:
  1. a b c d
  2. 0 -0.241678 0.621589 0.843546 -0.383105
  3. 1 -0.526918 -0.485325 1.124420 -0.653144
  4. 2 -1.074163 0.939324 -0.309822 -0.209149
  5. 3 -0.716816 1.844654 -2.123637 -1.323484
  6. 4 0.368212 -0.910324 0.064703 0.486016

2. 列索引

df_obj[[‘label’]]

  • 示例代码:
  1. # 列索引
  2. print(df_obj['a']) # 返回Series类型
  3. print(type(df_obj['a'])) # 返回DataFrame类型
  4.  
  5. df_obj2 = pd.DataFrame(np.random.randn(5,4))
  6. print(df_obj2[[0]]) # 返回DataFrame类型
  7. print(type(df_obj2[[0]])) # 返回DataFrame类型
  • 运行结果:
  1. 0 -0.241678
  2. 1 -0.526918
  3. 2 -1.074163
  4. 3 -0.716816
  5. 4 0.368212
  6. Name: a, dtype: float64
  7. <class 'pandas.core.series.Series'>
  8.  
  9. 0
  10. 0 0.893045
  11. 1 0.192732
  12. 2 -0.380107
  13. 3 0.711755
  14. 4 -0.698903
  15. <class 'pandas.core.frame.DataFrame'>

3. 不连续索引

df_obj[[‘label1’, ‘label2’]]

  • 示例代码:
  1. # 不连续索引
  2. print(df_obj[['a','c']])
  3. print(df_obj2[[1, 3]])
  • 运行结果:
  1. a c
  2. 0 -0.241678 0.843546
  3. 1 -0.526918 1.124420
  4. 2 -1.074163 -0.309822
  5. 3 -0.716816 -2.123637
  6. 4 0.368212 0.064703
  7. 1 3
  8. 0 0.621589 -0.383105
  9. 1 -0.485325 -0.653144
  10. 2 0.939324 -0.209149
  11. 3 1.844654 -1.323484
  12. 4 -0.910324 0.486016

高级索引:标签、位置和混合

Pandas的高级索引有3种

1. loc 标签索引

DataFrame 不能直接切片,可以通过loc来做切片

loc是基于标签名的索引,也就是我们自定义的索引名

  • 示例代码:
  1. # 标签索引 loc
  2. # Series
  3. print(ser_obj['b':'d'])
  4. print(ser_obj.loc['b':'d'])
  5.  
  6. # DataFrame
  7. print(df_obj['a'])
  8.  
  9. # 第一个参数索引行,第二个参数是列
  10. print(df_obj.loc[0:2, 'a'])
  • 运行结果:
  1. b 1
  2. c 2
  3. d 3
  4. dtype: int64
  5. b 1
  6. c 2
  7. d 3
  8. dtype: int64
  9.  
  10. 0 -0.241678
  11. 1 -0.526918
  12. 2 -1.074163
  13. 3 -0.716816
  14. 4 0.368212
  15. Name: a, dtype: float64
  16. 0 -0.241678
  17. 1 -0.526918
  18. 2 -1.074163
  19. Name: a, dtype: float64

2. iloc 位置索引

作用和loc一样,不过是基于索引编号来索引

  • 示例代码:
  1. # 整型位置索引 iloc
  2. # Series
  3. print(ser_obj[1:3])
  4. print(ser_obj.iloc[1:3])
  5.  
  6. # DataFrame
  7. print(df_obj.iloc[0:2, 0]) # 注意和df_obj.loc[0:2, 'a']的区别
  • 运行结果:
  1. b 1
  2. c 2
  3. dtype: int64
  4. b 1
  5. c 2
  6. dtype: int64
  7.  
  8. 0 -0.241678
  9. 1 -0.526918
  10. Name: a, dtype: float64

3. ix 标签与位置混合索引

ix是以上二者的综合,既可以使用索引编号,又可以使用自定义索引,要视情况不同来使用,

如果索引既有数字又有英文,那么这种方式是不建议使用的,容易导致定位的混乱。

  • 示例代码:
  1. # 混合索引 ix
  2. # Series
  3. print(ser_obj.ix[1:3])
  4. print(ser_obj.ix['b':'c'])
  5.  
  6. # DataFrame
  7. print(df_obj.loc[0:2, 'a'])
  8. print(df_obj.ix[0:2, 0])
  • 运行结果:
  1. b 1
  2. c 2
  3. dtype: int64
  4. b 1
  5. c 2
  6. dtype: int64
  7.  
  8. 0 -0.241678
  9. 1 -0.526918
  10. 2 -1.074163
  11. Name: a, dtype: float64

注意

DataFrame索引操作,可将其看作ndarray的索引操作

标签的切片索引是包含末尾位置的

4.Pandas的对齐运算

是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN

Series的对齐运算

1. Series 按行、索引对齐

  • 示例代码:
  1. s1 = pd.Series(range(10, 20), index = range(10))
  2. s2 = pd.Series(range(20, 25), index = range(5))
  3.  
  4. print('s1: ' )
  5. print(s1)
  6.  
  7. print('')
  8.  
  9. print('s2: ')
  10. print(s2)
  • 运行结果:
  1. s1:
  2. 0 10
  3. 1 11
  4. 2 12
  5. 3 13
  6. 4 14
  7. 5 15
  8. 6 16
  9. 7 17
  10. 8 18
  11. 9 19
  12. dtype: int64
  13.  
  14. s2:
  15. 0 20
  16. 1 21
  17. 2 22
  18. 3 23
  19. 4 24
  20. dtype: int64

2. Series的对齐运算

  • 示例代码:
  1. # Series 对齐运算
  2. s1 + s2
  • 运行结果:
  1. 0 30.0
  2. 1 32.0
  3. 2 34.0
  4. 3 36.0
  5. 4 38.0
  6. 5 NaN
  7. 6 NaN
  8. 7 NaN
  9. 8 NaN
  10. 9 NaN
  11. dtype: float64

DataFrame的对齐运算

1.DataFrame按行、列索引对齐

  • 示例代码:
  1. df1 = pd.DataFrame(np.ones((2,2)), columns = ['a', 'b'])
  2. df2 = pd.DataFrame(np.ones((3,3)), columns = ['a', 'b', 'c'])
  3.  
  4. print('df1: ')
  5. print(df1)
  6.  
  7. print('')
  8. print('df2: ')
  9. print(df2)
  • 运行结果:
  1. df1:
  2. a b
  3. 0 1.0 1.0
  4. 1 1.0 1.0
  5.  
  6. df2:
  7. a b c
  8. 0 1.0 1.0 1.0
  9. 1 1.0 1.0 1.0
  10. 2 1.0 1.0 1.0

2. DataFrame的对齐运算

  • 示例代码:
  1. # DataFrame对齐操作
  2. df1 + df2
  • 运行结果:
  1. a b c
  2. 0 2.0 2.0 NaN
  3. 1 2.0 2.0 NaN
  4. 2 NaN NaN NaN

填充未对齐的数据进行运算

1. fill_value

使用addsubdivmul的同时,

通过fill_value指定填充值,未对齐的数据将和填充值做运算

  • 示例代码:
  1. print(s1)
  2. print(s2)
  3. s1.add(s2, fill_value = -1)
  4.  
  5. print(df1)
  6. print(df2)
  7. df1.sub(df2, fill_value = 2.)
  • 运行结果:
  1. # print(s1)
  2. 0 10
  3. 1 11
  4. 2 12
  5. 3 13
  6. 4 14
  7. 5 15
  8. 6 16
  9. 7 17
  10. 8 18
  11. 9 19
  12. dtype: int64
  13.  
  14. # print(s2)
  15. 0 20
  16. 1 21
  17. 2 22
  18. 3 23
  19. 4 24
  20. dtype: int64
  21.  
  22. # s1.add(s2, fill_value = -1)
  23. 0 30.0
  24. 1 32.0
  25. 2 34.0
  26. 3 36.0
  27. 4 38.0
  28. 5 14.0
  29. 6 15.0
  30. 7 16.0
  31. 8 17.0
  32. 9 18.0
  33. dtype: float64
  34.  
  35. # print(df1)
  36. a b
  37. 0 1.0 1.0
  38. 1 1.0 1.0
  39.  
  40. # print(df2)
  41. a b c
  42. 0 1.0 1.0 1.0
  43. 1 1.0 1.0 1.0
  44. 2 1.0 1.0 1.0
  45.  
  46. # df1.sub(df2, fill_value = 2.)
  47. a b c
  48. 0 0.0 0.0 1.0
  49. 1 0.0 0.0 1.0
  50. 2 1.0 1.0 1.0

数据分析工具Pandas的更多相关文章

  1. 数据分析工具pandas简介

    什么是Pandas? Pandas的名称来自于面板数据(panel data)和Python数据分析(data analysis). Pandas是一个强大的分析结构化数据的工具集,基于NumPy构建 ...

  2. python数据分析工具 | pandas

    pandas是python下强大的数据分析和探索工具,是的python在处理数据时非常快速.简单.它是构建在numpy之上的,包含丰富的数据处理函数,支持时间序列分析功能,支持灵活处理缺失数据. pa ...

  3. python数据分析工具——Pandas、StatsModels、Scikit-Learn

    Pandas Pandas是 Python下最强大的数据分析和探索工具.它包含高级的数据结构和精巧的工具,使得在 Python中处理数据非常快速和简单. Pandas构建在 Numpy之上,它使得以 ...

  4. [数据分析工具] Pandas 功能介绍(一)

    如果你在使用 Pandas(Python Data Analysis Library) 的话,下面介绍的对你一定会有帮助的. 首先我们先介绍一些简单的概念 DataFrame:行列数据,类似 Exce ...

  5. [数据分析工具] Pandas 功能介绍(二)

    条件过滤 我们需要看第一季度的数据是怎样的,就需要使用条件过滤 体感的舒适适湿度是40-70,我们试着过滤出体感舒适湿度的数据 最后整合上面两种条件,在一季度体感湿度比较舒适的数据 列排序 数据按照某 ...

  6. 机器学习(4):数据分析的工具-pandas的使用

    前面几节说一些沉闷的概念,你若看了估计已经心生厌倦,我也是.所以,找到了一个理由来说一个有兴趣的话题,就是数据分析.是什么理由呢?就是,机器学习的处理过程中,数据分析是经常出现的操作.就算机器对大量样 ...

  7. Python数据分析工具:Pandas之Series

    Python数据分析工具:Pandas之Series Pandas概述Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建.Pandas纳入大量库和标准数据模型,提供高效的操作数 ...

  8. Python中的结构化数据分析利器-Pandas简介

    Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发tea ...

  9. python数据分析工具安装集合

    用python做数据分析离不开几个好的轮子(或称为科学棧/第三方包等),比如matplotlib,numpy, scipy, pandas, scikit-learn, gensim等,这些包的功能强 ...

随机推荐

  1. Android开发技巧——自定义控件之自定义属性

    Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个 ...

  2. Glog 和 Log4cxx 的对比

    转自:http://monkeycn.iteye.com/blog/1021703 #1 Log4cxx有比较完整的配置文档方式,xml和java配置档:GLog只能通过启动程序的时候的输入参数来配置 ...

  3. C++语言之静态变量的运用

    #include <iostream> using namespace std ; class Banana { public: static int id ; Banana(void) ...

  4. ViewPagerIndicator+viewpager指示器详解

    前几天学习了ViewPager作为引导页和Tab的使用方法.后来也有根据不同的使用情况改用Fragment作为Tab的情况,以及ViewPager结合FragmentPagerAdapter的使用.今 ...

  5. 2018年,请不要再使用OLE生成EXCEL文件

    输出EXCEL文件是ABAP开发工作中的常见需求,为了学习相关技术,我翻译过一篇文章:使用OLE2对象创建EXCEL文件,并且一度乐在其中. 最近几个月,经过与若干EXCEL打印程序的艰苦斗争,以及对 ...

  6. miniUI input设置默认值,js获取年月注意事项,数据库nvl函数使用

    2017-6-5周一,今天碰到的一个需求是:两税附征模块进入页面筛选时间默认值为当前月的上一个月,并根据筛选结果显示数据,我们用的框架为miniUI. 坑1: 默认值设置,刚刚接触miniUI,对里面 ...

  7. 《深入理解Java虚拟机》读书笔记3--垃圾回收算法

    转载:http://blog.csdn.net/tjiyu/article/details/53983064 下面先来了解Java虚拟机垃圾回收的几种常见算法:标记-清除算法.复制算法.标记-整理算法 ...

  8. 学好js的步骤

    第一步:打基础,建议看<JavaScript权威指南>,并作为参考书,供以后学习用. 第二步:进阶学习:建议看<JavaScript高级程序设计>,<精通JavaScri ...

  9. 初识Java——循环语句

    循环语句就是在一定条件下反复执行某一个操作.具体有三种方法实现: 1while循环语句 while语句也称作条件判断语句,它的循环方式为利用一个条件来控制是否要反复执行.语法如下: while(条件语 ...

  10. JavaScript 将两个数组合并,且删除重复的值

    var a=[1,2,3,4,5,8,9,10]; var b=[6,7,8,9,10]; var c = a.concat(b);//合并成一个数组 console.log(c) temp = {} ...