Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫添加一列数字来表示最近的月份_Python_Pandas_Dataframe - Fatal编程技术网

Python 熊猫添加一列数字来表示最近的月份

Python 熊猫添加一列数字来表示最近的月份,python,pandas,dataframe,Python,Pandas,Dataframe,一个简单的数据框,我想添加一列数字,以指示该月的最近程度,例如,最近一个月的“得分”最高,最远的一个月的“得分”最低 下面笨拙的行有助于简单的数据帧,但不能用于大型数据帧: import pandas as pd from io import StringIO csvfile = StringIO(""" Town,Department,Staff,Month,Project,Score East,Produce,Ethan,1987-08,A814,27 Eas

一个简单的数据框,我想添加一列数字,以指示该月的最近程度,例如,最近一个月的“得分”最高,最远的一个月的“得分”最低

下面笨拙的行有助于简单的数据帧,但不能用于大型数据帧:

import pandas as pd
from io import StringIO

csvfile = StringIO("""
Town,Department,Staff,Month,Project,Score
East,Produce,Ethan,1987-08,A814,27
East,Produce,Ethan,1987-09,A848,27
East,Produce,Ethan,1987-10,A736,29
East,Meat,Harry,1987-07,A813,26""")

df = pd.read_csv(csvfile, sep = ',', engine='python')

def condition(s):
    if (s['Month'] == '1987-10'):
        return 4
    if (s['Month'] == '1987-09'):
        return 3
    if (s['Month'] == '1987-08'):
        return 2
    if (s['Month'] == '1987-07'):
        return 1
    else:
        return ''

df["Month score"] = df.apply(condition, axis=1)

print (df)

对于另一个具有24个月或更长时间的大型数据帧,行中的月份是重复的,编写它的好方法是什么

谢谢。

如果可能,请使用:


这似乎有效,不需要一个月的分数

df['Month'] = pd.to_datetime(df['Month'])
df.sort_values('Month', ascending=False )
或者如果你真的需要分数

Score = pd.to_datetime(df['Month'])
df['Score'] = Score
df.sort_values('Score', ascending=False)
Score = pd.to_datetime(df['Month'])
df['Score'] = Score
df.sort_values('Score', ascending=False)