max и min для даты в CSV-Получение другого результата [дубликат]

  / * эта программа будет отображать номер в словах, например.  если вы введете 101, он покажет «ОДИН СТО И ОДИН» * / import java.util. *;  public class NumToWords {Строка string;  String st1 [] = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",};  String st2 [] = {«сто», «тысяча», «лак», «crore»};  Строка st3 [] = {«десять», «одиннадцать», «двенадцать», «тринадцать», «четырнадцать», «пятнадцать», «шестнадцать», «семнадцать», «восемнадцать», «ninteen»,};  String st4 [] = {"двадцать", "тридцать", "четыредцать", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто"};  public String convert (int number) {int n = 1;  int word;  string = "";  while (number! = 0) {switch (n) {case 1: word = number% 100;  пароль);  если (число & gt; 100 & amp; & amp; номер% 100! = 0) {показать ("и");  //System.out.print("ankit ");  } число / = 100;  ломать;  случай 2: слово = число% 10;  if (word! = 0) {show ("");  шоу (ST2 [0]);  показать(" ");  пароль);  } число / = 10;  ломать;  случай 3: слово = число% 100;  if (word! = 0) {show ("");  шоу (ST2 [1]);  показать(" ");  пароль);  } число / = 100;  ломать;  случай 4: слово = число% 100;  if (word! = 0) {show ("");  шоу (ST2 [2]);  показать(" ");  пароль);  } число / = 100;  ломать;  случай 5: слово = число% 100;  if (word! = 0) {show ("");  шоу (ST2 [3]);  показать(" ");  пароль);  } число / = 100;  ломать;  } n ++;  } return string;  } public void pass (int number) {int word, q;  if (число & lt; 10) {show (st1 [число]);  } if (число & gt; 9 & amp; & amp; номер & lt; 20) {show (st3 [число - 10]);  } if (число & gt; 19) {word = number% 10;  if (слово == 0) {q = число / 10;  show (st4 [q - 2]);  } else {q = число / 10;  шоу (st1 [слово]);  показать(" ");  show (st4 [q - 2]);  }}} public void show (String s) {String st;  st = строка;  string = s;  string + = st;  } public static void main (String [] args) {NumToWords w = new NumToWords ();  Вход сканера = новый сканер (System.in);  System.out.print («Введите номер:»);  int num = input.nextInt ();  String inwords = w.convert (num);  System.out.println (inwords);  }}  
167
задан Andy Hayden 16 June 2013 в 16:40
поделиться

3 ответа

Самый простой способ - использовать to_datetime :

df['col'] = pd.to_datetime(df['col'])

Он также предлагает аргумент dayfirst для европейских времен (но будьте осторожны , это isn ' t strict ).

Здесь он находится в действии:

In [11]: pd.to_datetime(pd.Series(['05/23/2005']))
Out[11]:
0   2005-05-23 00:00:00
dtype: datetime64[ns]

Вы можете передать конкретный формат :

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y")
Out[12]:
0   2005-05-23
dtype: datetime64[ns]
266
ответ дан Andy Hayden 15 August 2018 в 18:29
поделиться
  • 1
    спасибо за ваш ответ, могу ли я определить его формат? как «% d /% m /% Y»? очень оценен – perigee 16 June 2013 в 16:21
  • 2
    @shootingstars, возможно, см. stackoverflow.com/questions/13703720/… – Andy Hayden 29 March 2014 в 20:16
  • 3
    @shootingstars, передающие массив DatetimeIndex(df['col']).to_pydatetime(), должны работать. – Andy Hayden 29 March 2014 в 20:32
  • 4
    Когда я пытаюсь использовать этот подход в python 352, я вижу C:\Python352\lib\site-packages\ipykernel\__main__.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead. Я вижу подобное сообщение, когда я пытаюсь использовать подход, предложенный в сообщении предупреждения. Любая идея почему? – Sundeep 9 February 2017 в 19:36
  • 5
  • 6
    @daneshjai double-braces делает DataFrame (всего один столбец) по сравнению с однострочными, который получает столбец как серию. – Andy Hayden 28 March 2018 в 17:33

Вы можете использовать следующее, если хотите указать сложные форматы:

df['date_col'] =  pd.to_datetime(df['date_col'], format='%d/%m/%Y')
3
ответ дан Ekhtiar 15 August 2018 в 18:29
поделиться

Если ваш столбец даты является строкой формата '2017-01-01', вы можете использовать pandas astype для преобразования его в datetime.

df['date'] = df['date'].astype('datetime64[ns]')

или использовать datetime64 [D], если вы хотите, чтобы точность дня, а не наносекунды

print(type(df_launath['date'].iloc[0]))

дает

<class 'pandas._libs.tslib.Timestamp'> то же самое, что и при использовании pandas.to_datetime

Вы можете попробовать его с другими форматами, тогда «% Y-% m-% d», но по крайней мере это работает.

12
ответ дан sigurdb 15 August 2018 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: