大醉和尚  
qq:3262641915,如有问题,欢迎讨论.
  • 删除列/行

df.drop('总收入', axis=1)  #  列
df = df.drop([223, 224, 225])  # 行
  • 日期做索引

df.index = pd.DatetimeIndex(df['日期'])
层次化索引
df_1 = pd.DataFrame(df.drop('日期', axis=1).values, index=[date_index, row_index], columns=columns)
  • Empty 'DataFrame': no numeric data to plot
    diversity = diversity.astype(float)

  • 大量数据,分块处理

import pandas as pd
chunksize = 10 ** 8
for chunk in pd.read_csv(filename, chunksize=chunksize):
    process(chunk)
  • df 增加多列

def get_io_and_pw(row):
    d_link = info_book(row['original_title'], row['author_names']) or {}
    return d_link.get('d_io'), d_link.get('d_pw')

df_test['d_io'], df_test['d_pw'] = zip(*df_test.apply(get_io_and_pw, axis=1))
  • pandas 时间格式

transactions['date_formatted']=pd.to_datetime(transactions['date'], format='%d.%m.%Y')

附录:format相关
代码	说明
%Y	4位数的年
%y	2位数的年
%m	2位数的月[01,12]
%d	2位数的日[01,31]
%H	时(24小时制)[00,23]
%l	时(12小时制)[01,12]
%M	2位数的分[00,59]
%S	秒[00,61]有闰秒的存在
%w	用整数表示的星期几[0(星期天),6]
%F	%Y-%m-%d简写形式例如,2017-06-27
%D	%m/%d/%y简写形式
  • 一个时间文本序列

s = pd.Series(['2016-01-31 10:18:04', '2016-02-29 12:18:09'])
s
'''
0 2016-01-31 10:18:04
1 2016-02-29 12:18:09
dtype: object
'''

  • 纳秒级

s.astype('datetime64[ns]')
'''
0 2016-01-31 10:18:04
1 2016-02-29 12:18:09
dtype: datetime64[ns]
'''

  • 日级

s.astype('datetime64[D]')
'''
0 2016-01-31
1 2016-02-29
dtype: datetime64[ns]
'''

  • 小时级

s.astype('datetime64[h]')
'''
0 2016-01-31 10:00:00
1 2016-02-29 12:00:00
dtype: datetime64[ns]
'''

  • 秒级

s.astype('datetime64[s]')
'''
0 2016-01-31 10:18:04
1 2016-02-29 12:18:09
dtype: datetime64[ns]
'''

  • 月级,当月第一天

s.astype('datetime64[M]')
'''
0 2016-01-01
1 2016-02-01
dtype: datetime64[ns]
'''

  • 年级,当年第一天

s.astype('datetime64[Y]')
'''
0 2016-01-01
1 2016-01-01
dtype: datetime64[ns]
'''

  • 周级,当周周四(原因如下)

s.astype('datetime64[W]')
'''
0 2016-01-28
1 2016-02-25
dtype: datetime64[ns]
'''

posted on 2021-01-08 14:06  大醉和尚  阅读(94)  评论(0编辑  收藏  举报