Python里的数据分析利器|用Pandas“花式拼接各种表格”

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

640?wx_fmt=jpeg

通常来说,我们需要的数据不可能都来自同一张表格,所以了解如何对不同格式的表格进行拼接、合并是非常重要的。

本文将介绍Pandas库中常用的合并表格的方法,包括.append(), pd.concat(), pd.merge(), 并配合实例进行讲解。

01

上下拼接

.append()【1】方法可以实现表格的上下拼接,一般来说它们会有相同的列名,比如,上下拼接两只股票的日线数据。


import tushare as ts
import pandas as pd

pd.set_option('expand_frame_repr', False)  # 显示所有列
ts.set_token('your token')
pro = ts.pro_api()

df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180705')
df1 = pro.daily(ts_code='000002.SZ', start_date='20180701', end_date='20180705')
print(df)
print(df1)


     ts_code trade_date  open  high   low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705  8.62  8.73  8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704  8.63  8.75  8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703  8.69  8.70  8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702  9.05  9.05  8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg        vol       amount
0  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22  267278.61   619393.007
1  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79  249881.03   582470.214
2  000002.SZ   20180703  23.10  23.48  22.80  23.42      22.80    0.62     2.72  549964.88  1274023.575
3  000002.SZ   20180702  24.50  24.55  22.52  22.80      24.60   -1.80    -7.32  846203.86  1981131.638

print(df.append(df1))

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705   8.62   8.73   8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704   8.63   8.75   8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703   8.69   8.70   8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702   9.05   9.05   8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868
0  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22   267278.61   619393.007
1  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79   249881.03   582470.214
2  000002.SZ   20180703  23.10  23.48  22.80  23.42      22.80    0.62     2.72   549964.88  1274023.575
3  000002.SZ   20180702  24.50  24.55  22.52  22.80      24.60   -1.80    -7.32   846203.86  1981131.638

表格df的数据在上,表格df1的数据在下,注意到拼接之后的索引并没有随新表更新,这一问题可以通过设置参数ignore_index=True来解决。


print(df.append(df1, ignore_index=True))

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705   8.62   8.73   8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704   8.63   8.75   8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703   8.69   8.70   8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702   9.05   9.05   8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868
4  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22   267278.61   619393.007
5  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79   249881.03   582470.214
6  000002.SZ   20180703  23.10  23.48  22.80  23.42      22.80    0.62     2.72   549964.88  1274023.575
7  000002.SZ   20180702  24.50  24.55  22.52  22.80      24.60   -1.80    -7.32   846203.86  1981131.638


如果想要批量拼接,可以写一个循环,如将截至某日的所有上市公司股票日线数据拼接成一个大表格,示例中选取的时间段为'20180101'-'20180105',并只选取了前5只股票,效果如下。


df = pro.daily(trade_date='20180105')
code_list = df['ts_code'].tolist()[:5]

stock_data = pd.DataFrame()
for code in code_list:
    print(code)
    df = pro.daily(ts_code=code, start_date='20180101', end_date='20180105')
    stock_data = stock_data.append(df, ignore_index=True)

print(stock_data)

600863.SH
000001.SZ
000002.SZ
000004.SZ
000005.SZ
      ts_code trade_date   open   high    low  close  pre_close  change  pct_chg         vol       amount
0   600863.SH   20180105   3.04   3.04   3.00   3.01       3.02   -0.01    -0.33   101317.50    30551.982
1   600863.SH   20180104   3.01   3.03   2.99   3.02       3.00    0.02     0.67   139274.37    41969.249
2   600863.SH   20180103   2.99   3.01   2.98   3.00       2.98    0.02     0.67   113068.36    33859.869
3   600863.SH   20180102   2.97   2.99   2.97   2.98       2.97    0.01     0.34    87204.89    25997.338
4   000001.SZ   20180105  13.21  13.35  13.15  13.30      13.25    0.05     0.38  1210312.72  1603289.517
5   000001.SZ   20180104  13.32  13.37  13.13  13.25      13.33   -0.08    -0.60  1854509.48  2454543.516
6   000001.SZ   20180103  13.73  13.86  13.20  13.33      13.70   -0.37    -2.70  2962498.38  4006220.766
7   000001.SZ   20180102  13.35  13.93  13.32  13.70      13.30    0.40     3.01  2081592.55  2856543.822
8   000002.SZ   20180105  32.98  35.88  32.80  34.76      33.12    1.64     4.95   843101.96  2916787.871
9   000002.SZ   20180104  32.76  33.53  32.10  33.12      32.33    0.79     2.44   529085.80  1740602.533
10  000002.SZ   20180103  32.50  33.78  32.23  32.33      32.56   -0.23    -0.71   646870.20  2130249.691
11  000002.SZ   20180102  31.45  32.99  31.45  32.56      31.06    1.50     4.83   683433.50  2218502.766
12  000004.SZ   20180105  23.23  23.47  22.85  23.18      23.24   -0.06    -0.26    10444.04    24273.307
13  000004.SZ   20180104  23.80  23.83  23.12  23.24      23.80   -0.56    -2.35    14540.66    33908.548
14  000004.SZ   20180103  22.42  23.89  22.27  23.80      22.34    1.46     6.54    18795.39    43218.416
15  000004.SZ   20180102  22.29  22.49  22.00  22.34      22.38   -0.04    -0.18     6261.81    13951.004
16  000005.SZ   20180105   4.26   4.45   4.26   4.34       4.29    0.05     1.17    85226.27    37286.935
17  000005.SZ   20180104   4.27   4.33   4.23   4.29       4.27    0.02     0.47    43809.78    18732.178
18  000005.SZ   20180103   4.35   4.35   4.22   4.27       4.32   -0.05    -1.16    67990.65    28966.791
19  000005.SZ   20180102   4.15   4.50   4.15   4.32       4.14    0.18     4.35    71539.34    30529.757

pd.concat()【2】也能实现上面的效果,同样通过设置参数ignore_index=True来解决索引问题,这里的axis=0为默认值,默认按行拼接。


print(pd.concat([df, df1], axis=0, ignore_index=True))

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705   8.62   8.73   8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704   8.63   8.75   8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703   8.69   8.70   8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702   9.05   9.05   8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868
4  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22   267278.61   619393.007
5  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79   249881.03   582470.214
6  000002.SZ   20180703  23.10  23.48  22.80  23.42      22.80    0.62     2.72   549964.88  1274023.575
7  000002.SZ   20180702  24.50  24.55  22.52  22.80      24.60   -1.80    -7.32   846203.86  1981131.638

02

左右拼接

pd.concat()不仅能够实现上下拼接,而且还能通过设置参数axis=1实现左右拼接。以拼接两个不同长度的表格为例,没有值的位置会自动填充为NaN

print(df)

     ts_code trade_date  close
0  000001.SZ   20180705   8.60
1  000001.SZ   20180704   8.61
2  000001.SZ   20180703   8.67
3  000001.SZ   20180702   8.61

print(df1)

     ts_code trade_date  close
0  000002.SZ   20180709  24.01
1  000002.SZ   20180706  23.21
2  000002.SZ   20180705  23.05
3  000002.SZ   20180704  23.00
4  000002.SZ   20180703  23.42
5  000002.SZ   20180702  22.80

print(pd.concat([df, df1], axis=1))

     ts_code trade_date  close    ts_code trade_date  close
0  000001.SZ   20180705   8.60  000002.SZ   20180709  24.01
1  000001.SZ   20180704   8.61  000002.SZ   20180706  23.21
2  000001.SZ   20180703   8.67  000002.SZ   20180705  23.05
3  000001.SZ   20180702   8.61  000002.SZ   20180704  23.00
4        NaN        NaN    NaN  000002.SZ   20180703  23.42
5        NaN        NaN    NaN  000002.SZ   20180702  22.80

如果想要按列拼接有相同索引的行,可以设置参数join='inner',设置参数sort=True升序排列。以两个索引为时间的表格为例,效果如下。


print(df)

              ts_code  close
trade_date                  
20180705    000001.SZ   8.60
20180704    000001.SZ   8.61
20180703    000001.SZ   8.67
20180702    000001.SZ   8.61

print(df1)

              ts_code  close
trade_date                  
20180709    000002.SZ  24.01
20180706    000002.SZ  23.21
20180705    000002.SZ  23.05
20180704    000002.SZ  23.00
20180703    000002.SZ  23.42
20180702    000002.SZ  22.80

print(pd.concat([df, df1], axis=1, join='inner', sort=True))

              ts_code  close    ts_code  close
trade_date                                    
20180702    000001.SZ   8.61  000002.SZ  22.80
20180703    000001.SZ   8.67  000002.SZ  23.42
20180704    000001.SZ   8.61  000002.SZ  23.00
20180705    000001.SZ   8.60  000002.SZ  23.05

03 

合并表格

pd.merge()【3】方法可以实现表格之间的合并操作,类似于SQL中的连接JOIN的用法。通过设置参数how='left', 'right', 'outer', 'inner',默认为 'inner' ,实现不同形式的合并。

640?wx_fmt=png


how='inner'

设置参数on='trade_date' 表示两个表格将按照列'trade_date' 中的值进行合并,当参数how为默认值'inner'时,结果和用pd.concat()方法设置参数join='inner'得到的类似。


区别在于,pd.merge()操作会自动为合并前有相同列名、不同值的列名添加后缀,以便我们进行区分,如下所示的'close_x'和'close_y'



如果想要让后缀名变得更有意义,可以通过设置参数suffixes=['_000001', '_000002']实现。                  

print(df)

              ts_code  close
trade_date                  
20180705    000001.SZ   8.60
20180704    000001.SZ   8.61
20180703    000001.SZ   8.67
20180702    000001.SZ   8.61

print(df1)

              ts_code  close
trade_date                  
20180709    000002.SZ  24.01
20180706    000002.SZ  23.21
20180705    000002.SZ  23.05
20180704    000002.SZ  23.00
20180703    000002.SZ  23.42
20180702    000002.SZ  22.80

print(df.merge(df1, on='trade_date', sort=True))

            ts_code_x  close_x  ts_code_y  close_y
trade_date                                        
20180702    000001.SZ     8.61  000002.SZ    22.80
20180703    000001.SZ     8.67  000002.SZ    23.42
20180704    000001.SZ     8.61  000002.SZ    23.00
20180705    000001.SZ     8.60  000002.SZ    23.05

print(df.merge(df1, on='trade_date', sort=True, suffixes=['_000001', '_000002']))

           ts_code_000001  close_000001 ts_code_000002  close_000002
trade_date                                                          
20180702        000001.SZ          8.61      000002.SZ         22.80
20180703        000001.SZ          8.67      000002.SZ         23.42
20180704        000001.SZ          8.61      000002.SZ         23.00
20180705        000001.SZ          8.60      000002.SZ         23.05

如果两个表格中想要进行合并的列名不同,如下所示的表格df中的交易日期列名为'trade_date_stock',表格df_index中的交易日期列名为'trade_date',这时需要我们设置参数left_onright_on指定要进行合并的列名。


print(df)

     ts_code trade_date_stock  close
0  000001.SZ         20180704   8.61
1  000001.SZ         20180703   8.67
2  000001.SZ         20180702   8.61

print(df1)

     ts_code trade_date      close
0  399300.SZ   20180706  3365.1227
1  399300.SZ   20180705  3342.4379
2  399300.SZ   20180704  3363.7473
3  399300.SZ   20180703  3409.2801
4  399300.SZ   20180702  3407.9638

print(df.merge(df_index, left_on='trade_date_stock', right_on='trade_date', sort=True))

   ts_code_x trade_date_stock  close_x  ts_code_y trade_date    close_y
0  000001.SZ         20180702     8.61  399300.SZ   20180702  3407.9638
1  000001.SZ         20180703     8.67  399300.SZ   20180703  3409.2801
2  000001.SZ         20180704     8.61  399300.SZ   20180704  3363.7473

参数on也可以传入一个包含多个列名的list,如['ts_code', 'trade_date'],此时在默认how='inner'的情况下, 合并后只会返回['ts_code', 'trade_date']值在两个表格中都相等的行。


print(df)

     ts_code trade_date  close
0  000001.SZ   20180706   8.66
1  000001.SZ   20180705   8.60
2  000001.SZ   20180704   8.61
3  000001.SZ   20180703   8.67
4  000001.SZ   20180702   8.61

print(df1)

     ts_code trade_date  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702         0.7662          1.28  6.3753  0.7267
0  000001.SZ   20180703         0.7425          1.21  6.4197  0.7318

combined = pd.merge(left=df, right=df1, on=['ts_code', 'trade_date'], sort=True)
print(combined)

     ts_code trade_date  close  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702   8.61         0.7662          1.28  6.3753  0.7267
1  000001.SZ   20180703   8.67         0.7425          1.21  6.4197  0.7318

我们还可以通过设置参数how='left', how='right', how='outer', 分别进行左连接、右连接和外连接。

640?wx_fmt=png


how='left'

左连接的示意图如上所示,从下面示例代码返回的结果可以观察到,左连接会保留左侧表格的所有数据,以及两个表格按照on设置的条件合并后重合的部分,没有数据的地方会自动填充NaN值。


print(df)

     ts_code trade_date  close
0  000001.SZ   20180706   8.66
1  000001.SZ   20180705   8.60
2  000001.SZ   20180704   8.61
3  000001.SZ   20180703   8.67
4  000001.SZ   20180702   8.61

print(df1)

     ts_code trade_date  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702         0.7662          1.28  6.3753  0.7267
0  000001.SZ   20180703         0.7425          1.21  6.4197  0.7318

combined = pd.merge(df, df1, how='left', on=['ts_code', 'trade_date'], sort=True)
print(combined)

     ts_code trade_date  close  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702   8.61         0.7662          1.28  6.3753  0.7267
1  000001.SZ   20180703   8.67         0.7425          1.21  6.4197  0.7318
2  000001.SZ   20180704   8.61            NaN           NaN     NaN     NaN
3  000001.SZ   20180705   8.60            NaN           NaN     NaN     NaN
4  000001.SZ   20180706   8.66            NaN           NaN     NaN     NaN

640?wx_fmt=png


how='right'

同理,右连接则会保留右侧表格的所有数据,以及两个表格按照on设置的条件合并后重合的部分,没有数据的地方会自动填充NaN值。


print(df)

     ts_code trade_date  close
0  000001.SZ   20180706   8.66
1  000001.SZ   20180705   8.60
2  000001.SZ   20180704   8.61
3  000001.SZ   20180703   8.67
4  000001.SZ   20180702   8.61

print(df1)

     ts_code trade_date  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702         0.7662          1.28  6.3753  0.7267
0  000001.SZ   20180703         0.7425          1.21  6.4197  0.7318

combined = pd.merge(df, df1, how='right', on=['ts_code', 'trade_date'], sort=True)
print(combined)

     ts_code trade_date  close  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702   8.61         0.7662          1.28  6.3753  0.7267
1  000001.SZ   20180703   8.67         0.7425          1.21  6.4197  0.7318


640?wx_fmt=png


how='outer'

外连接的示意图如上所示,返回满足合并条件的所有行,没有数据的地方会自动填充NaN值。


print(df)

    ts_code trade_date  close
0  000001.SZ   20180706   8.66
1  000001.SZ   20180705   8.60
2  000001.SZ   20180704   8.61
3  000001.SZ   20180703   8.67
4  000001.SZ   20180702   8.61

print(df1)

     ts_code trade_date  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180706         0.5756          1.03  6.4123  0.7309
0  000001.SZ   20180709         0.8212          1.38  6.6863  0.7621
0  000001.SZ   20180710         0.5223          0.86  6.6493  0.7579

combined = pd.merge(df, df1, how='outer', on=['ts_code', 'trade_date'], sort=True)
print(combined)

     ts_code trade_date  close  turnover_rate  volume_ratio      pe      pb
0  000001.SZ   20180702   8.61            NaN           NaN     NaN     NaN
1  000001.SZ   20180703   8.67            NaN           NaN     NaN     NaN
2  000001.SZ   20180704   8.61            NaN           NaN     NaN     NaN
3  000001.SZ   20180705   8.60            NaN           NaN     NaN     NaN
4  000001.SZ   20180706   8.66         0.5756          1.03  6.4123  0.7309
5  000001.SZ   20180709    NaN         0.8212          1.38  6.6863  0.7621
6  000001.SZ   20180710    NaN         0.5223          0.86  6.6493  0.7579


04

总结

本文介绍了Pandas中常用的合并表格的方法,分别为.append()pd.concat()pd.merge(),我们观察到,通过设置不同的参数值,可以对表格进行不同形式的拼接、合并操作。


如果想要批量拼接、合并,可以通过写循环来实现。有关这三种方法的官方文档链接已附在下面,感兴趣的话可以自行查看所有可设置的参数,解锁新功能!



近期热门:

豆瓣评分3.2,用Python+AI 告诉你为啥《上海堡垒》凉凉了

我要放大招,用Python来预测双色球

Spark对两个列数不一致DataFrame进行上下拼接 之前已经在博客中介绍了spark的dataframe利用union 等一系列方法进行拼接,详情请见Spark中对Dataframe的union 、unionAll和 unionByName方法说明 但是在那篇博客也提到,利用union的这些方法,必须保证两个dataframe必须列数一致(unionByName方法还需要所有列名必须一致)。 那么如果如果dfA和dfB的列长度不一致,应该怎么去上下拼接呢? val data2 = Seq( | ("1", null, "hlj", null), 阅读详情

相关推荐

python股票数据获取及保存、读取

Tushare获取数据 导入包:import tushare as ts #token=‘自己的token’#登录Tushare 查看自己的token #pro = ts.pro_api(token) pro.daily(ts_code=‘股票代码’, start_date=‘开始时间’, end_date=‘结束时间’)# 将数据保存为CSV…文件 data.to_csv或excel(‘路径\文件名.csv或xlsx’,index=False) index=False告诉计算机保存的时候不生成0,1,2

xiaoluohengguo的博客 4868

[Pandas 中的 DataFrame 拼接、筛选和修改操作全解析]

Pandas 中的 DataFrame 拼接、筛选和修改操作全解析]在 Pandas 中,DataFrame 是非常重要的数据结构之一。不同于 Series,DataFrame 可以包含多列数据,并且每一列数据类型可以不同。因此,DataFrame 可以看做是由若干个 Series 组成的集合。在实际数据处理中,我们需要对 DataFrame 进行拼接、筛选和修改等操作。本文将详细介绍 Pandas 中的 DataFrame 拼接、筛选和修改操作,帮助您更好地掌握 DataFrame 的使用。

. 1039

深入理解Python数据分析利器——Pandas库详解(一)

PandasPython中专为数据操作和分析设计的开源库,提供了高性能的数据结构和丰富的数据操作工具。Pandas的主要目标是成为数据分析领域的高级工具,解决多种数据格式的处理需求。无论是表格数据(如SQL表或Excel表),还是多维数组、时间序列数据,Pandas都能轻松应对。Series:一维数组,包含数据和对应的索引。DataFrame:二维表格数据结构,既有行索引也有列索引,类似于电子表格或SQL表格。接下来,我们将通过具体代码示例详细介绍如何使用这两个数据结构以及Pandas的常见功能。

小高~的博客 6183

如何用Pandas花式拼接表格数据

通常来说,我们需要的数据不可能都来自同一张表格,所以了解如何对不同格式的表格进行拼接、合并是非常重要的。本文将介绍Pandas库中常用的合并表格的方法,包括.append...

cainiao_python的博客 2976

python 数据合并函数merge( )_DataFrame 数据合并实现(merge,join,concat)

mergemerge 函数通过一个或多个键将数据集的行连接起来。场景:针对同一个主键存在的两张包含不同特征的表,通过主键的链接,将两张表进行合并。合并之后,两张表的行数不增加,列数是两张表的列数之和。def merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_ind...

weixin_39986171的博客 1016

dataframe 上下拼接_Python数据分析利器|Pandas花式拼接各种表格

通常来说,我们需要的数据不可能都来自同一张表格,所以了解如何对不同格式的表格进行拼接、合并是非常重要的。本文将介绍Pandas库中常用的合并表格的方法,包括.append(), pd.concat(), pd.merge(),并配合实例进行讲解。01上下拼接.append()【1】方法可以实现表格的上下拼接,一般来说它们会有相同的列名,比如,上下拼接两只股票的日线数据。import...

weixin_39788986的博客 5089

Python数据分析利器:NumPy、pandas与Matplotlib库---之pandas

pandas库是基于NumPy库的一个开源Python库,广泛应用于完成数据快速分析、数据清洗和准备等工作,它的名字来源于“paneldata”(面板数据)。pandas库提供了非常直观的数据结构及强大的数据管理和数据处理 功能,某种程度上可以把pandas库看成Python版的Excel。pandas库也是Anaconda自带的,无须单独安装。与NumPy库相比,pandas库更擅长处理二维数据。pandas库主要有Series和DataFrame两种数据结构。

2401_84271190的博客 1952

Python 进阶系列】第4篇:初探 Python Pandas 数据分析的世界

本文介绍了Python数据分析Pandas的核心功能与应用场景。Pandas基于NumPy,提供Series和DataFrame两种核心数据结构,支持表格数据的读取、清洗、统计和可视化。文章通过实例演示了如何创建DataFrame、文件读取、数据筛选排序等基础操作,并以员工薪资分析为例展示了分组统计和可视化方法。Pandas作为数据分析的基础工具,在数据预处理、机器学习和可视化中具有重要作用。文章还建议后续学习数据合并、缺失值处理等进阶功能,为数据分析工作奠定基础。

weixin_43837507的博客 1197

深入解析Python数据分析利器Pandas

本文还有配套的精品资源,点击获取 简介:Pandas是一个广泛用于数据处理的Python库,它提供了DataFrame和Series两种核心数据结构,使得数据操作直观易懂。它支持数据的导入导出、清洗、筛选排序、合并连接、分组聚合、时间序列分析和数据重塑透视等多样功能。此外,Pandas与Jupyter Notebook集成,便于数据探索与报告编写。掌握Pandas可以帮助数据科学家和分析师高效处理和理解数据,支持决策和研究。 欢迎进入Pandas的世界

weixin_29781865的博客 1108

Python中的Pandas数据分析利器

Pandas是基于 NumPy 构建的开源 Python 数据分析库,由 Wes McKinney 于 2008 年开发,旨在为数据科学家提供一种高效、灵活且易于使用的工具来处理结构化数据。其名称“Pandas”源自"Panel Data"(面板数据)和的缩写。Series:一维带标签的数组,用于表示单列数据。DataFrame:二维表格型数据结构,类似于 Excel 表格或 SQL 表,是 Pandas 最常用的数据对象。

weixin_40266856的博客 1万+

数据分析利器 Pandas:用Python玩转表格数据

本文全面介绍了Python数据分析Pandas的核心功能。主要内容包括:Pandas的定位与核心数据结构(Series和DataFrame)、数据读取与写入、数据查看与选择方法、数据清洗技巧(缺失值处理、重复值处理等)、数据转换与重塑操作、分组聚合功能、时间序列处理以及性能优化技巧。文章还提供了实战案例展示完整的数据分析流程,并介绍了Pandas 3.0的新特性。通过系统讲解Pandas的各项功能,帮助读者掌握这一Python数据分析的核心工具,提高数据处理效率。

higerwy的博客 1325

python:数据分析利器pandas库,我们把它的功能好好总结一下,发现它的美

摘要:PandasPython核心数据分析库,提供DataFrame和Series数据结构,支持高效数据处理与分析。其优势包括:灵活的数据操作、强大的时间序列支持、30+种数据格式I/O功能,以及与其他科学计算库的无缝集成。核心功能涵盖数据清洗(缺失值处理、去重)、转换(合并、分组)、分析(统计计算)及可视化。主要操作包括数据结构创建、行列选择、数据聚合、时间序列处理等。Pandas的简洁API使其成为数据科学领域必备工具,掌握它是进入数据分析领域的基础。

hlnzxl的博客 1239

快速掌握Python数据分析利器——Pandas

快速掌握Python数据分析利器——Pandas库 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在数据科学和数据分析领域,PythonPandas库无疑是最受欢迎的工具之一。为了帮助初学者快速掌握这一强大的数据处理工具,我们推出了“Python数据分析Pandas快速入门教程”电子书。这本电子书旨在为读者提供一个系统、全面的Pandas学习路径,无论你是数据分析...

gitblog_06624的博客 396

初识 PandasPython 数据分析利器

Pandas 是数据处理的瑞士军刀,无论你是分析师、数据科学家,还是工程师,都值得深入学习。本文只是入门介绍,实际应用中 Pandas 的功能远不止于此,比如时间序列分析、多重索引、高性能数据读取等。下一步建议深入学习:结合 Matplotlib/Seaborn 进行可视化实战项目练习,例如 Kaggle 竞赛。

2301_76849350的博客 1206

Python的那些事第二十八篇:数据分析与操作的利器Pandas

Pandas的名称来源于“Panel Data”(面板数据),最初由Wes McKinney于2008年开发,旨在为Python提供高效的数据分析工具。Pandas基于NumPy库构建,继承了NumPy的高性能数组操作能力,并在此基础上扩展了更多数据分析功能。Pandas的出现填补了Python数据分析领域的空白,使得Python在处理结构化数据时更加高效和便捷。

weixin_74149145的博客 1128

Python数据分析利器pandas解析

PandasPython中强大的开源数据分析库,提供Series(一维数组)和DataFrame(二维表格)两种核心数据结构,支持数据清洗、筛选、排序、聚合等操作。它能从CSV、Excel、SQL等多种源读取数据,并支持高效查询(布尔索引、query方法等)和可视化。优势在于高性能、易用性和与其他库(如NumPy、Matplotlib)的良好集成,广泛应用于数据清洗、统计分析、机器学习特征工程等领域。特别适合处理结构化数据,能显著提升数据处理效率。

2401_83690033的博客 648

数据分析:1.Python数据分析利器——Pandas

作者:禅与计算机程序设计艺术 1.简介 Pandas是一个开源的数据分析工具包,它提供了高级数据结构、数据读取、数据操纵、数据处理等功能,能简单、快速地进行数据分析工作。它的主要用途是在内存中存储和处理数据,提供数据的清洗、整理、可视化和建模等功能。 本系列教程从入门级的Pandas入手,

AI天才研究院 3105

[数据分析实战]对比用Excel和Python用来做数据分析的优缺点,用PythonPandas操作Excel数据表格原来如此简单?还不赶紧学起来?

老话说知己知彼才能百战不怠,我们先把两者的优缺点分析好,就会知道什么场景下该用Excel,什么场景下该用Python,如果不想看的小伙伴可以直接跳转到操作部分。

热心的布丁-有计划的自学编程才会成功 5985

python数据分析-pandas读取数据

python数据分析pandas读取数据1-读取不同表格的数据

何以笙箫默 1340
上一篇: 拿不到 offer 退学费 | 廖雪峰的“大数据分析全栈工程师”课程第8期开始招生...
下一篇: 建议看一下,零基础学Python都想问的6个问题,老司机给你两千字解答
菜鸟学Python
博客等级 码龄9年 7562粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值