1

голосов
1

ответ
1.1k

Просмотры

mySQL: mysqlimport to import comma delimited file - first column = ID which is NOT in the file to be imported

Hi Folks I am trying to import a very large file that has moisture data recorded daily per minute for 20 cities in the US. I have 1 table that I named "cityname" and this table has 2 columns: -city_ID
codingknob
1

голосов
1

ответ
84

Просмотры

крест присоединиться к / слияния dataframe1 для создания dataframe2 комбинаций на основе столбца в dataframe1

Это тот же вопрос: крест присоединиться к / слияния для создания dataframe комбинаций (порядок не имеет значения) ДФ = pd.DataFrame ({ 'Zone2': [ 'IL', 'IL-1', 'IL-3' , 'IL'], 'город': [ 'Чикаго', 'Сент-Луис', 'Монмут', 'Де-Мойн'], 'zone1': [ 'Середина', 'Mid', 'Mid', 'Mid' ]}) Я хочу, чтобы создать второй dataframe всех комбинаций колонка = город. Это так, как я это сделать, но должно быть эффективным способом сделать это за меньшее число шагов. df2 = pd.DataFrame (список (itertools.combinations (список (ДФ [ 'город']), 2))) df2.columns = [ 'city_1', 'city_2'] = df2 df2.merge (ДФ, left_on =» city_1' , right_on = 'город'). сливаться (ДФ, left_on = 'city_2', right_on = 'город', суффиксы = (»
codingknob
1

голосов
1

ответ
112

Просмотры

проблема производительности для промежуточного слияния / присоединиться dataframes для вычисления статистики

У меня есть dataframe, который состоит из комбинации пара города аэропортового от общей вселенной ~ 4000 аэропортов. Число комбинаций в миллионах но работать с подмножеством данных, который составляет примерно 1,5 млн пара (рядов df_pairs). df_pairs: city1 City2 0 SFO YYZ 1 SFO YVR 2 SFO DFW 3 SFO EWR 4 SFO рйх выход df_pairs.to_dict ( 'записи'): [{ 'индекс': 0, 'city1': 'SFO', 'City2': 'YYZ'}, { 'индекс': 1, 'city1': 'SFO', 'City2': 'YVR'}, { 'индекс': 2 'city1': 'SFO', 'City2': 'DFW '}, {' индекс ': 3, 'city1': 'SFO', 'City2':' EWR '}, {' индекс ': 4 'city1': 'SFO', 'City2': '' рйх }] Для каждого города пары (строка) в df_pairs, я хочу выполнять различные вычисления уровня пары. У меня есть 3 дополнительных dataframes, которые держат различные численные и категорический информацию о каждом аэропорту. Они похожи на что-то вроде (хотя некоторые ДФС ежемесячные данные и другие ежедневные данные): df_stats1: город топлива высадка пассажиров взлетов датируются 2014-05-01 SFO 2,32 4,26 4,87 6,58 2014-05-01 YYZ 14,00 1,50 20,00 5,00 2014-05- 01 YVR 24.78 2.90 50.55 6.64 2.40 2014-05-01 DFW 4,06 4,06 6,54 2014-05-01 EWR 30.35 9.96 64.24 6.66 60.35 2014-05-01 рйх 5.45 4.12 6.98 Выход df_stats1.reset_index (). to_dict ( '') записи : [{ 'дата': Отметка ( '2014-05-01 00:00:00'), 'город': 'SFO', 'посадок': 4.26, 'пассажиры' взлетов ': 64,24}, {' Дата ': Отметка (' 2014-05-01 00:00:00' ), 'город': 'рйх', 'посадок': 5.45, '' пассажиров: 6,98, 'топливо' : 60.35, 'взлеты': 4.12}] Теперь, у меня есть функция calstats, которая выполняется: df_pairs.apply (calstats, оси = 1, Args = (v1, v2, v3, v4, v5, v6, v7, л ли)) Первая функция вещи calcstats делает построить 3 промежуточных / временные dataframes путем выбора данных для каждого города в паре от стата ДФСА и выравнивания их бок о боке в ряде, выполняя слияния. Пример одного из промежуточных / временных ДФС: city1_df = df_stats1 [df_stats1 [ 'город'] == строки [ 'city1']] city2_df = df_stats1 [df_stats1 [ 'город'] == строки [ 'City2']] tmp_city_pair_df = city1_df.merge (city2_df, left_index = True, right_index = True, как = «вправо», суффиксы = ( «_ 1», «_ 2»)) Я затем использовать 3 промежуточную / временную глубину (т.е. tmp_city_pair_df) для выполнения различных вычислений как разница между посадками между парами, максимальной (этой разницей в период времени под вопросом), мин () и т.д. у меня есть различные проблемы с производительностью, которые возникают. Во-первых, что общее время, необходимое для построения 3 промежуточных глубину приблизительно: 0: 00: 00,048481. У меня около 1,5 миллионов строк в df_pairs таким образом, общая стоимость для выполнения промежуточной глубины составляет 1500000 х 0: 00: 00,048481 = 72,721.5 секунд = 20,2 часов. Так она занимает 20 часов только, чтобы построить промежуточную глубину и не включает в себя временные затраты, необходимые для использования этой промежуточной глубины при выполнении дальнейших вычислений. Я задаюсь вопросом, есть ли более эффективный способ сделать это. По сути, то, что я делаю это поиск по city1 и City2 в df_stats1, df_stats2 и df_stats3 и построении промежуточной / временной глубины которой я могу работать с для выполнения вычислений на уровень пары. UPDATE Я хотел предоставить дополнительную информацию. Таким образом, намерение состоит в том, чтобы произвести окончательный dataframe на основе пар, который выглядит примерно следующим, что я могу использовать для дальнейшей обработки. city1 City2 stat1, stat2, stat3, stat4, STAT5, STAT6 ... 0 SFO YYZ, х, х, х, х, х, х 1 SFO YVR, у, у, у, у, у, у 2 SFO DFW, г, г, г, г, г, г 3 SFO EWR, а, а, а, а, а, а 4 SFO рйх, B, B, B, B, B, B Статистические данные, названных STAT1 через STAT6 выше, являются собственностью статистические данные, которые не существуют в исходных данных. Необработанных данных состоит из 3 dataframes, которые я называю: df_stat1 df_stat2 df_stat3 df_stat1 = ежедневных данных (топливо, посадок, взлеты, пассажиры) для каждого аэропорта за последние 24 месяцев df_stat2 = df_stat1 но агрегированный до месяца (через df.stat1.groupby ([ «город», pd.TimeGrouper ( «M»)] df_stat3 = ежемесячно временные ряды данных . для каждого аэропорта в течение последних 24 месяцев, который содержит такую ​​информацию, как сборы за посадку, доход и т.д. Теперь, чтобы добраться до конечного dataframe различных вычислений должны иметь место, я хочу, чтобы вычислить такие вещи, как: 1) City1 Посадка - City2 Посадка (на ежедневно и ежемесячно) 2) Знак статистики в # 1 (положительный или отрицательный) Так, например, в конечном dataframe, stat1 может быть: Сумма только положительные значения в # 2 выше. Таким образом, вы можете увидеть, что различные операции должны произойти, чтобы прибыть в конечный dataframe. Я не знаю, как я могу сделать это лучше всего использовать панда / возможность векторизации Python. Например,
codingknob
1

голосов
1

ответ
179

Просмотры

parse_dates, pd.read_csv unintended result

I have a csv file that has a list of holiday dates. f5_name = r'C:\\holidays.csv' holidays = pd.read_csv(f5_name, parse_dates=True) You can reproduce holidays dataframe using the following: nerc_holidays.to_dict() {'dt': {0: '2016-09-05', 1: '2016-11-24', 2: '2016-12-26', 3: '2017-01-02', 4: '2017-05-29', 5: '2017-07-04', 6: '2017-09-04', 7: '2017-11-23', 8: '2017-12-15', 9: '2018-01-01', 10: '2018-05-28', 11: '2018-07-04', 12: '2018-09-03', 13: '2018-11-22', 14: '2018-12-25'}} You can see that I added the parse_dates = True parameter to the pd.read_csv() execution. Now, I have another dataframe named databasedf. I want to filter databasedf such that the date column (dt) has a date that is in the holiday dataframe. When I run the following: databasedf[databasedf['dt'].isin(holidays)] I get the this error: TypeError Traceback (most recent call last) C:\Users\XXX\Anaconda3\lib\site-packages\pandas\tseries\tools.py in _convert_listlike(arg, box, format, name) 408 try: --> 409 values, tz = tslib.datetime_to_datetime64(arg) 410 return DatetimeIndex._simple_new(values, name=name, tz=tz) pandas\tslib.pyx in pandas.tslib.datetime_to_datetime64 (pandas\tslib.c:29768)() TypeError: Unrecognized value type: During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) in () ----> 1 databasedf[databasedf['dt'].isin(holidays)] C:\Users\XXX\Anaconda3\lib\site-packages\pandas\core\series.py in isin(self, values) 2413 2414 """ -> 2415 result = algos.isin(_values_from_object(self), values) 2416 return self._constructor(result, index=self.index).__finalize__(self) 2417 C:\Users\XXX\Anaconda3\lib\site-packages\pandas\core\algorithms.py in isin(comps, values) 129 if com.is_datetime64_dtype(comps): 130 from pandas.tseries.tools import to_datetime --> 131 values = to_datetime(values)._values.view('i8') 132 comps = comps.view('i8') 133 elif com.is_timedelta64_dtype(comps): C:\Users\XXX\Anaconda3\lib\site-packages\pandas\util\decorators.py in wrapper(*args, **kwargs) 89 else: 90 kwargs[new_arg_name] = new_arg_value ---> 91 return func(*args, **kwargs) 92 return wrapper 93 return _deprecate_kwarg C:\Users\XXX\Anaconda3\lib\site-packages\pandas\tseries\tools.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, box, format, exact, coerce, unit, infer_datetime_format) 289 yearfirst=yearfirst, 290 utc=utc, box=box, format=format, exact=exact, --> 291 unit=unit, infer_datetime_format=infer_datetime_format) 292 293 C:\Users\XXX\Anaconda3\lib\site-packages\pandas\tseries\tools.py in _to_datetime(arg, errors, dayfirst, yearfirst, utc, box, format, exact, unit, freq, infer_datetime_format) 425 return _convert_listlike(arg, box, format, name=arg.name) 426 elif com.is_list_like(arg): --> 427 return _convert_listlike(arg, box, format) 428 429 return _convert_listlike(np.array([arg]), box, format)[0] C:\Users\XXX\Anaconda3\lib\site-packages\pandas\tseries\tools.py in _convert_listlike(arg, box, format, name) 410 return DatetimeIndex._simple_new(values, name=name, tz=tz) 411 except (ValueError, TypeError): --> 412 raise e 413 414 if arg is None: C:\Users\XXX\Anaconda3\lib\site-packages\pandas\tseries\tools.py in _convert_listlike(arg, box, format, name) 396 yearfirst=yearfirst, 397 freq=freq, --> 398 require_iso8601=require_iso8601 399 ) 400 pandas\tslib.pyx in pandas.tslib.array_to_datetime (pandas\tslib.c:41972)() pandas\tslib.pyx in pandas.tslib.array_to_datetime (pandas\tslib.c:41577)() pandas\tslib.pyx in pandas.tslib.array_to_datetime (pandas\tslib.c:41466)() pandas\tslib.pyx in pandas.tslib.parse_datetime_string (pandas\tslib.c:31806)() C:\Users\XXX\Anaconda3\lib\site-packages\dateutil\parser.py in parse(timestr, parserinfo, **kwargs) 1162 return parser(parserinfo).parse(timestr, **kwargs) 1163 else: -> 1164 return DEFAULTPARSER.parse(timestr, **kwargs) 1165 1166 C:\Users\XXX\Anaconda3\lib\site-packages\dateutil\parser.py in parse(self, timestr, default, ignoretz, tzinfos, **kwargs) 553 554 if res is None: --> 555 raise ValueError("Unknown string format") 556 557 if len(res) == 0: ValueError: Unknown string format The .isin() function ONLY works after I do the following: holidays = pd.to_datetime(holidays['dt']) Why do I have to force the values to datetime when in fact I passed the parse_dates=True parameter in pd.read_csv()?
codingknob
1

голосов
1

ответ
42

Просмотры

панды результат вычитания dataframe имеет строку и DTYPE информацию

У меня есть простой dataframe и я вычислить очень простое вычитание, как так: p0_cost = cost_df [ 'price1'] [cost_df [ 'дата'] == p0] - \ cost_df [ 'price2'] [cost_df [ 'дата'] = = р0] Я вычислить различные другие статистические данные в дополнение к p0_cost. Я сохранить эти статистические данные в структуру ДИКТ (), который я затем использовать для создания dataframe. Теперь, что происходит, это значение p0_cost выглядит следующим образом: 12 213,151824 DTYPE: float64 Фактическое значение 213.151824, но она также сохраняет строку и DTYPE информацию. Как только получить значение и не все это другой мусор?
codingknob
1

голосов
2

ответ
0

Просмотры

R рода () data.frame

У меня голова следующего кадра данных (stockdatareturnpercent) ШПИОНКИ А К SMH OIH 2001-04-02 8,1985485 7,8349806 7,935566 21,223832 13,975655 2001-05-01 -0,5621328 1,7198760 2,141846 -10,904936 -4,565291 2001-06-01 -2,6957979 -3,5838102 2,786250 4,671762 - 23.241009 2001-07-02 -1,0248091 -0,1997433 -5,725078 -3,354391 -9,161594 2001-08-01 -6,1165559 -5,0276558 -2,461728 -6,218129 -13,956695 2001-09-04 -8,8900629 -12,2663267 -15,760037 -39,321172 -16,902913 На самом деле есть более акции, но для целей иллюстрации я должен был срубить. В каждом месяце я хочу знать лучшего к худшему (или худших к лучшим) исполнителей. Я играл с функцией сортировки (), и это то, что я придумал. N
codingknob
1

голосов
2

ответ
0

Просмотры

питон: панды установить ошибки

У меня есть ученая распределение EPD 7.1 для MacOS 10.6.x, который имеет панды 0.3 версии. Последняя официальная версия 0.5.0, так что я, хотя я бы обновиться до последней. Вот что я сделал: спас зип файл источника отсюда выполненного SUDO питона setup.py установить RAN тесты, выполнив nosetests панд Пожалуйста, имейте в виду, я в общей сложности новичок в Python. Любые идеи о том, почему моей установки не удалось бы весьма признателен. Ниже приведен фрагмент кода ошибки. Весь журнал можно найти в журнале ошибок Результаты: 1498 Ran испытания в 55.011s невыполненным (SKIP = 4, ошибки = 91, неудачи = 14) =================== ================================================== = ОШИБКА: test_generate (test_daterange.TestGeneration) ----------------------------------------- ----------------------------- Traceback (самый последний вызов последнего): Файл «/ Library / Frameworks / EPD64.
codingknob
1

голосов
1

ответ
4.1k

Просмотры

insertmany into the in memory sqllite db - SQLite Date type only accepts Python date objects as input

I have a table that I am trying to insert many using a dict object. engine = create_engine('sqlite:///:memory:', echo=True) metadata = MetaData() hockey= Table('hockey', metadata, Column('team', String(16), primary_key=True), Column('jersey_colour', String(16)), Column('stadium', String(32)), Column('goals', Integer), Column('date', Date, primary_key=True), Column('assists', Integer)) >>>data[0] {'jersey_colour': u'Blue', 'team': u'Toronto Maple Leafs', 'stadium': u'Air Canada Center', 'date': '2013-03-25', 'assists': 301, 'goals': 151} >>>data[1] {'jersey_colour': u'Red', 'team': u'Calgary Flames', 'stadium': u'PenWest', 'date': '2013-03-25', 'assists': 254, 'goals': 147} conn = engine.connect() conn.execute(ins, data) StatementError: SQLite Date type only accepts Python date objects as input. (original cause: TypeError: SQLite Date type only accepts Python date objects as input.) 'INSERT INTO "hockey" (team, jersey_colour, stadium, goals, date, assists) VALUES (?, ?, ?, ?, ?, ?)' [{'jersey_colour': 'Blue', 'team': 'Toronto Maple Leafs', 'stadium': u'Air Canada Center', 'date': '2013-03-25', 'assists': 301, 'goals': 151} First question - does the order by which the parameters are fed to '?' matter. As you can see, the fields appear as follows: team jersey_colour stadium goals date assists HOWEVER, the dictionary order is arbitrary: jersey_colour team stadium date assists goals Is this a problem for sqlite or mysql? In theory the key is provided so it should be able to figure where to store the data but I'm not sure. For production I will be using a mysql database but for testing I am using the inmemory sqlite db. Second question, the error: StatementError: SQLite Date type only accepts Python date objects as input I found the following (https://groups.google.com/forum/?fromgroups=#!topic/sqlalchemy/EeZbkePPb38), which says: SQLite doesn't have a DATE type specifically. SQLAlchemy's Date() type expects Python datetime, i.e. "import datetime; date = datetime.date(year, month day)". The value that is paired with the data key is created by the Python datetime.date command as per what the commentator said above. >>>today_date = datetime.date.today() So I'm not sure why the error is occurring. I appreciate your help on both questions #1 and #2. Thank you.
codingknob
1

голосов
2

ответ
491

Просмотры

how to collapse/compress/reduce string columns in pandas

Essentially, what I am trying to do is join Table_A to Table_B using a key to do a lookup in Table_B to pull column records for names present in Table_A. Table_B can be thought of as the master name table that stores various attributes about a name. Table_A represents incoming data with information about a name. There are two columns that represent a name - a column named 'raw_name' and a column named 'real_name'. The 'raw_name' has the string "code_" before the real_name. i.e. raw_name = CE993_VincentHanna real_name = VincentHanna Key = real_name, which exists in Table_A and Table_B Please see the mySQL tables and query here: http://sqlfiddle.com/#!9/65e13/1 For all real_names in Table_A that DO-NOT exist in Table_B I want to store raw_name/real_name pairs into an object so I can send an alert to the data-entry staff for manual insertion. For all real_names in Table_A that DO exist in Table_B, which means we know about this name and can add the new raw_name associated with this real_name into our master Table_B In mySQL, this is easy to do as you can see in my sqlfidde example. I join on real_name and I compress/collapse the result by groupby a.real_name since I don't care if there are multiple records in Table_B for the same real_name. All I want is to pull the attributes (stats1, stats2, stats3) so I can assign them to the newly discovered raw_name. In the mySQL query result I can then separate the NULL records to be sent for manual data-entry and automatically insert the remaining records into Table_B. Now, I am trying to do the same in Pandas but am stuck at the point of groupby on real-name. e = {'raw_name': pd.Series(['AW103_Waingro', 'CE993_VincentHanna', 'EES43_NeilMcCauley', 'SME16_ChrisShiherlis', 'MEC14_MichaelCheritto', 'OTP23_RogerVanZant', 'MDU232_AlanMarciano']), 'real_name': pd.Series(['Waingro', 'VincentHanna', 'NeilMcCauley', 'ChrisShiherlis', 'MichaelCheritto', 'RogerVanZant', 'AlanMarciano'])} f = {'raw_name': pd.Series(['SME893_VincentHanna', 'TVA405_VincentHanna', 'MET783_NeilMcCauley', 'CE321_NeilMcCauley', 'CIN453_NeilMcCauley', 'NIPS16_ChrisShiherlis', 'ALTW12_MichaelCheritto', 'NSP42_MichaelCheritto', 'CONS23_RogerVanZant', 'WAUE34_RogerVanZant']), 'real_name': pd.Series(['VincentHanna', 'VincentHanna', 'NeilMcCauley', 'NeilMcCauley', 'NeilMcCauley', 'ChrisShiherlis', 'MichaelCheritto', 'MichaelCheritto', 'RogerVanZant', 'RogerVanZant']), 'stats1': pd.Series(['meh1', 'meh1', 'yo1', 'yo1', 'yo1', 'hello1', 'bye1', 'bye1', 'namaste1', 'namaste1']), 'stats2': pd.Series(['meh2', 'meh2', 'yo2', 'yo2', 'yo2', 'hello2', 'bye2', 'bye2', 'namaste2', 'namaste2']), 'stats3': pd.Series(['meh3', 'meh3', 'yo3', 'yo3', 'yo3', 'hello3', 'bye3', 'bye3', 'namaste3', 'namaste3'])} df_e = pd.DataFrame(e) df_f = pd.DataFrame(f) df_new = pd.merge(df_e, df_f, how='left', on='real_name', suffixes=['_left', '_right']) df_new_grouped = df_new.groupby(df_new['raw_name_left']) Now how do I compress/collapse the groups in df_new_grouped on real-name like I did in mySQL. Once I have an object with the collapsed results I can slice the dataframe to report real_names we don't have a record of (NULL values) and those that we already know and can store the newly discovered raw_name.
codingknob
1

голосов
1

ответ
843

Просмотры

install mysql-connector in side installation of python (in addition to default python install)

У меня есть 6.6 сервер Linux CentOS, который python2.6.6 установлен по умолчанию. Мне нужна версия питона 2.7, но CENTOS 6,6 ПОТРЕБНОСТЬ его по умолчанию python2.6.6 установки присутствует по различным причинам системы (ни зависит от 2.6.6). Таким образом, я установил Python 2.7 в отдельном месте (/usr/local/lib/python2.7/). Теперь я пытаюсь установить все пакеты, которые я использовал в python2.6.6 в версии 2.7. Я библиотека MySQL-разъем установлен в python2.6.6, который был установлен с помощью файла .rpm из: https://dev.mysql.com/doc/connector-python/en/connector-python-installation-binary.html Установка Connector / Python на Linux Использование RPM Package Connector / Python Linux RPM-пакеты (.rpm файлы) доступны из разъема / Python загрузки сайта (смотрите раздел 4.1, «Получение Connector / Python»). Чтобы установить / Python RPM пакет Connector (обозначаемый здесь package.rpm), используйте следующую команду: раскошеливаться> -i мин package.rpm Чтобы установить C Extension (поставляется в качестве соединителя / Python 2.1.1), установите соответствующий пакет с «Cext» в имени пакета. RPM предоставляет функцию для проверки целостности и подлинности пакетов перед их установкой. Чтобы узнать больше, обратитесь к разделу Проверка пакета целостности с помощью контрольных сумм MD5 или GnuPG. Я не знаю, как я могу установить библиотеку MySQL-разъем таким образом, что python2.7 распознает установку. Я заметил, что библиотека MySQL-разъем в python2.6.6. (По умолчанию) установить находится здесь: /usr/lib/python2.6/site-packages/mysql/ /usr/lib/python2.6/site-packages/mysql_connector_python-1.1.5-py2.6. яйцевидная информация Является ли решение просто скопировать + переименовать каталог MySQL и яичная Информация о файле к /usr/local/lib/python2.7/site-packages/ или есть дополнительные / другие шаги, которые я должен следовать. Я не уверен, копия будет решить эту проблему, так как каталог MySQL имеет __init __. Pyc и __init __. Гнойно файлы, пути, которые являются специфическими для python2.6.6 и, вероятно, построен во время процесса установки.
codingknob
1

голосов
2

ответ
69

Просмотры

превращая словарь словаря в dataframe с одной строкой, один столбец кортежей

У меня есть именованный тест словарь так: DCT = {} тест = { 'A': 1, '-A': 1, '-C': 1} DCT [ 'key1'] = тест Я хочу ФР с одним строка с одного столбца, который выглядит следующим образом: (А, 1), (-А, 1), (-С, 1) Я пытался так много способов iteritems () через ключи, значение DCT создания списка / объектов кортежей до вызова pd.DataFrame (х), но не смогли получить структуру я хочу. Там должен быть простой способ сделать это.
codingknob
1

голосов
1

ответ
1.4k

Просмотры

панды изменить конкретное значение столбца повторяющихся строк

Используя пример здесь Отбросьте все повторяющиеся строки в Python панд Допустим, я не хочу, чтобы отбросить дубликаты, но изменить значение данных в одном из столбцов в подмножестве. Таким образом, согласно примеру, если мы используем подмножество = [ «A», «C»], чтобы определить дубликаты, то я хочу изменить строки 1 столбца «A» из Foo до foo1. У меня есть сложный способ сделать это, но должен быть более простым способом, который использует преимущества векторизации встроенных функций /. Оригинальный ДФ: ABC 0 0 Foo Foo А 1 1 А 2 Foo 1 В 3 бар 1 Желаемая ДФ: ABC 0 0 Foo А 1 foo1 1 А 2 Foo 1 B 3 бар 1 А
codingknob
1

голосов
1

ответ
47

Просмотры

MultiIndex / Advanced Indexing where a level is not (!=) a value

Как вы отрезаете следующий ФР таким образом, что второй уровень! = Два. В моем реальном мире случае мой второй уровень диапазоны дат, и я хочу, чтобы иметь возможность выбрать все за одну дату, за исключением. Из мультииндексного / Advanced Indexing В [1]: массивах = [[ 'бар', 'бара', 'База', 'База', 'Foo', 'Foo', 'QUX', 'QUX'], [ 'один », 'два', 'один', 'два', 'один', 'два', 'один', 'два']] В [2]: кортежей = список (ZIP (* массивы)) В [4] : индекс = pd.MultiIndex.from_tuples (кортежи, имена = [ 'первый', 'второй']) В [16]: DF = pd.DataFrame (np.random.randn (3, 8), индекс = [ 'A », 'В', 'С'], столбцы = индекс) В работе [38]: DF = df.T В работе [65]: ДФ Из [65]: АВС первый второй бар один 0.895717 0.410835 -1,413681 два 0,805244 0,813850 1,607920 Баз один -1,206412 0,132003 1,024180 2,565646 два -0,827317 0,569605 1,431256 Foo один -0,076467 0,875906 1,340309 -1,187678 два -2,211372 QUX один -1,170299 1,130127 0,974466 два -0,226169 -1,436737 -2,006747 В [66]: df.xs ( «один», уровень = «второй») из [66]: ABC первый бар 0,895717 0,410835 -1,413681 Баз -1,206412 0,132003 1,024180 1,431256 -0,076467 Foo 0,875906 1,130127 -1,170299 QUX 0,974466 Я удивлен, что документация @ pandas.pydata.org настолько бедны. Там нет объяснений для любого из примеров. Его как документация была написана специалистами для людей, которые уже хорошо пережили со всеми особенностями панд. Почему не в документации предоставить код повторно произвести пример?
codingknob
1

голосов
3

ответ
303

Просмотры

агрегирование почасовых временных рядов на день через pd.TimeGrouper ( «D»); выпуск @ метка времени 00:00:00 (час 24)

set_index ( 'DateTime', Inplace = True) Я хочу, чтобы объединить данные по DAY. Так что я: dfgrped = df.groupby ([pd.TimeGrouper ( 'D')]) Я хочу, чтобы вычислить статистику, как сумма: dfgrped.agg (сумма) час оборот дата и время 2016-05-01 276 -2,43 2016-05 -02 24 -0,06 Как вы можете видеть, что агрегация происходит за 2016-05-01 и 2016-05-02. Обратите внимание, что последняя запись ежечасно данных в ФРЕ происходит в 2016-05-02 00:00:00, который предназначен, чтобы быть данными за последний час предыдущего дня т.е. 24 почасовых точек данных на каждый день. Однако, учитывая дату и время штампа, вещи не работают так, как я предполагал. Я хочу, чтобы все 24 часа, чтобы агрегировать для 2016-05-01. Я полагаю, такого рода вопрос должен возникать часто в различных приложениях, когда измерение проводится в конце часа. Это не является проблемой до последнего часа, которое происходит в 00:00:00 метки времени следующего дня. Как решить эту проблему в панд?
codingknob
1

голосов
1

ответ
2.5k

Просмотры

K-средства / X-средство (или другие?) кластеризации в панд / Python

У меня есть dataframe, которые могут быть реконструированы из ниже Dict. Dataframe представляет 23 статистику (X1-X23) для разных городов по всему миру. Каждый город занимает одну строку в dataframe с 23 статистикой в ​​виде отдельных столбцов. Моя фактическая ДФ имеет ~ 6 миллионов городов поэтому его большой dataframe. То, что я хочу сделать, это: Шаг 1: Определение кластеров городов на основе 23 статистических данных (X1-X23). Шаг 2: С учетом выявленных кластеров на стадии # 1, я хочу построить портфель городов таким образом, что: а) количество городов, выбранных из любого данного кластера ограничено (предел может быть различным для каждого кластера) б) избегать определенных кластеров в целом с) применять дополнительные критерии для выбора портфеля таким образом, что соотношение плохой погоды между городами в портфеле минимизируется и корреляция хорошей погоды между городами максимальна. Моя проблема устанавливается такая, что K для K-средства алго будет довольно большим, но я не уверен, что это значение. Я нижеследующее на кластеризации: анализ кластеров в R: определить оптимальное количество кластеров Как определить, к при использовании K-средств кластеризации? X-средства: Расширение K-средства ... Тем не менее, много литературы чужда мне и заберет меня месяц, чтобы понять. Я не ученый, данные и не имеют времени, чтобы взять курс на машинном обучении. На данный момент у меня есть dataframe и теперь вертел свои пальцы. Я был бы признателен, если вы можете помочь мне двигаться вперед в деле реализации шагов с # 1 стадиями # 2 в панде с примерным набором данными. ДИКТ ниже, могут быть восстановлены в dataframe от pd.DataFrame (х), где х означает ДИКТ ниже:. Выход df.head () to_dict ( «REC»): [{ «X1»:
codingknob
1

голосов
1

ответ
51

Просмотры

извлечь DateTime значение OBJ из панд серии (одна строка)

У меня такая же проблема, как описано здесь связь, но на этот раз с объектом даты и времени. Использование .values ​​преобразует объект типа DateTime к чему-то вроде 2011-02-28T19: 00: 00.000000000-0500. До конверсии дата и время было 2011-03-01 Что такое правильный способ делать то, что я хочу сделать?
codingknob
1

голосов
2

ответ
429

Просмотры

условная нарезка на основе значений 2 колонков

У меня есть DF1, который выглядит как: Out [43]: city1 City2 0 YYZ SFO 1 YYZ EWR 2 YYZ DFW 3 YYZ LAX 4 YYZ YYC У меня есть еще df2, что я хочу, чтобы ломтик на основе df1 т.е. city1 и City2 в df2 должны соответствует одному и тому же city1 и City2 паре в df1. Я хочу только строки в df2 где city1 и City2 столбцы соответствуют точно, как в df1. Должен ли я объединить / присоединиться ДФС вместе, как левое соединение на df1 как единственный чистый способ сделать это? Я не хочу, чтобы создать еще один столбец со значением в виде конкатенации city1 и City2. Это будет работать, но там должен быть простой способ, который встроен в панд, не манипулировать мои данные. UPDATE: df2 имеет больше, чем просто 2 столбцов. Он имеет в общей сложности 20 колонн. Для простоты я только упомянул city1 и City2. В любом случае,
codingknob
1

голосов
1

ответ
1.9k

Просмотры

pd.qcut - ValueError: Bin края должны быть уникальными

Мои данные здесь. д = pd.qcut (DF [ 'loss_percent'], 10) ValueError: Bin края должны быть уникальными: массив ([0,38461538, 0,38461538, 0,46153846, 0,46153846, 0,53846154, 0,53846154, 0,53846154, 0,61538462, 0,69230769, 0,76923077, 1.]) Я прочитал почему-потребительной панд-qcut-возвратного-ValueError, однако я до сих пор путают. Я полагаю, что один из моих значений имеет высокую частоту встречаемости и что нарушает qcut. Во-первых, шаг, как я могу определить, если это действительно так, и какое значение является проблемой. И, наконец, какие решения Уместно учитывая мои данные.
codingknob
1

голосов
1

ответ
42

Просмотры

pivoting pandas df - turn column values into column names

Нью-Йорк '}, 'Апрель-17 revenue1': {0: 56,0, 1: +113,15000000000001}, 'Апрель-17 revenue2': {0: 4,5, 1: 299,63}, 'Mar-17 revenue1': {0: 177 , 1: 99}, 'Mar-17 revenue2': {0: +309,85000000000002, 1: 258,25}}) И аналогичный DF для расходов. В принципе, включите значение столбцов TIME_PERIOD в имена столбцов, как АПР-17, Mar-17 с доходами / расходами строки в зависимости от обстоятельств и значение revenue1 / revenue2 и cost1 / cost2 соответственно. Я играл вокруг с pd.pivot_table с некоторым успехом, но я не могу получить именно то, что я хочу. включить значение столбцов TIME_PERIOD в имена столбцов, как АПР-17, Mar-17 с доходами / расходами строки в зависимости от обстоятельств и значение revenue1 / revenue2 и cost1 / cost2 соответственно. Я играл вокруг с pd.pivot_table с некоторым успехом, но я не могу получить именно то, что я хочу. включить значение столбцов TIME_PERIOD в имена столбцов, как АПР-17, Mar-17 с доходами / расходами строки в зависимости от обстоятельств и значение revenue1 / revenue2 и cost1 / cost2 соответственно. Я играл вокруг с pd.pivot_table с некоторым успехом, но я не могу получить именно то, что я хочу.
codingknob
1

голосов
2

ответ
731

Просмотры

python argparse - can I use only mutually exclusive optional arguments or is there a better way

Я пишу сценарий, который загружает файл из Интернета, выполняет некоторую обработку и сохраняет данные в БД MySQL. Я использую argparse для приема аргументов. По сути, скрипт будет делать 1 из 4 вещей: 1) скачать указанное пользователем имя файла из Интернета и выполнить обработку / DB-вставку. 2) загрузить текущий наиболее файл на основе вчерашнего дня. У меня есть хроны, которая проходит эту часть каждую ночь после 2 часов ночи. 3) делать то же самое, как # 2, но для дополнительного файла. 4) обработать определенный пользователем файл в текущей папке и сохранить его в выходной файл в той же папке. Сценарий может сделать только один из вышеуказанных 4 вещей. Таким образом, я думал, что я могу использовать взаимоисключающие необязательные аргументы следующим образом: анализатор = argparse.ArgumentParser () группа = parser.add_mutually_exclusive_group (обязательно = True) group.add_argument ( '- F', '-' имя файла, Действие = 'магазин', nargs = 1, помощь = 'Имя файла для загрузки') group.add_argument ( '- Ъ', '- bulkfile', действие = 'магазин', nargs = 2, поможет Bulk имя файла = 'для обработки и сохранить ') group.add_argument (' - л», '--load', действие = 'store_true', помощь = 'Загрузить данные текущей нагрузки') group.add_argument ( '- S', '--supply', действие = «store_true», помощь = «Загрузить текущие данные поставки») арг = parser.parse_args (), если args.filename: сделать что-то Элиф args.bulkfile: сделать что-то Элиф args.load: сделать что-то Элиф args.supply: сделать что-то еще : печать «Неправильное использование может использовать только [-f | -b | -l | -s]» вернуться Я знаю, что это не идеал. Я предпочел бы позволить argparse сделку с использованием части. Я ищу оптимальный путь достижения своей цели.
codingknob
2

голосов
2

ответ
5.6k

Просмотры

R-project zoo object: how to remove rows where data is non-numeric

У меня есть файл CSV, который имеет 2 колонки, разделенные запятой - первая дата следует, что, предполагают, чтобы быть числовые данные. Я загрузить данные в R с помощью функции read.csv, которая хранит данные в объекте data.frame с 2-мя колоннами. Я выполняю некоторые манипуляции, чтобы преобразовать объект в объект зоопарк с индексом, установленным на дату. Так что теперь объект имеет один столбец, который предполагают, чтобы быть числовые данные и индекс даты. Проблема заключается в данных имеет строку символов «ND» в случайном порядке разбросаны. Я хочу, чтобы извлечь только те строки объекта зоопарка, которые не содержат «ND». yr2 является зоопарк предметом озабоченности. Пример: 03/15/2011 0,63 03/16/2011 0,58 03/17/2011 0,60 03/18/2011 0,61 03/21/2011 0,67 03/22/2011 03/23/2011 НД 0,69 0,72 03/24/2011 03/25/2011 0,79 03/28/2011 0,81 03/29/2011 0,81 03/30/2011 0. 80 03/31/2011 0,80 Я попытался следующее:> yr2 Error [= "ND"]: неожиданный '! =' В "! Yr2 [="> yr2 [yr2 [= "ND"]] Ошибка: неожиданный '=!' в>> yr2 [is.character (yr2)] Данные "yr2 [yr2 [=!": символ (0) Индекс: Данные: именованный символ (0) Индекс: целое число (0) Я бы очень оценить некоторые рекомендации. Спасибо.
codingknob
2

голосов
2

ответ
1.7k

Просмотры

Проект R: участок кадра данных

9059 2011-02-18 2,81 9060 2011-02-21 9061 2011-02-22 2,72 9062 2,75 2011-02-23 9063 2011-02-24 2,73 9064 2011-02-25 2,7 9065 2011-02-28 2,73 9066 2011 -03-01 2,75 9067 2,77 9068 2011-03-02 2011-03-03 2,79 9069 2,81 9070 2011-03-04 2011-03-07 2,81 9071 2,83 9072 2011-03-08 2011-03-09 2.78 9073 2011- 03-10 2,72 9074 2,76 2011-03-11 9075 2011-03-14 2,75 9076 2011-03-15 2.7 выше, представляет собой фрагмент кадра данных с именем 'MYDATA. Имя первого столбца V1 и V2, второй. Первый столбец содержит даты, которые были преобразованы с использованием в качестве. Date () функция. Я хочу, чтобы построить это на ху сетки с колонкой-1 на оси х и столбца-2 на оси у. Я пробовал различные комбинации в течение нескольких часов без успеха. Я попытался> участок (MYDATA [1], MYDATA [2]) Это приводит к консоли R повесить, как представляется, что он делает что-то бессмысленное.
codingknob
2

голосов
1

ответ
3.7k

Просмотры

Заполнение недостающих данных в XTS объекта цена акций

У меня есть 1 минута данные о ценах внутридневной которая недостающие точки данных. Поэтому я хочу, чтобы заполнить их. Я прочитал предложения в следующем посте и попробовал подобную процедуру: R: Наполнение пропущенных дат во временном ряду? В моем случае отсутствует точка данных является первой сделкой, т.е. в 09:31:00. > Голова (ы) AMR.Open AMR.High AMR.Low AMR.Close AMR.Volume AMR.WAP AMR.hasGaps AMR.Count 2010-09-10 9:32:00 6.08 6.10 6.07 6.10 298 6,087 0 39 2010-09 -10 9:33:00 6.10 6.14 6.10 6.14 274 6,122 0 70 2010-09-10 9:34:00 6,14 6,15 6,13 6,13 472 6,133 0 96 2010-09-10 9:35:00 6.13 6.14 6.13 6.13 291 6,133 0 68 2010-09-10 9:36:00 6.13 6.13 6.11 6. 123 0 97 2010-09-10 9:37:00 6,11 6,11 6,11 6,11 67 6,110 0 26 Как вы можете видеть выше объекта, возвращаемого не заполняется по желанию. Ниже вы можете видеть, что я правильно указано время начала и окончания. > As.POSIXct (головка (индекс (ы), 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1 ] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. 6,11 6,11 11 67 6,110 0 26 Как вы можете видеть выше объекта, возвращенного не заполняется по желанию. Ниже вы можете видеть, что я правильно указано время начала и окончания. > As.POSIXct (головка (индекс (ы), 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1 ] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. 6,11 6,11 11 67 6,110 0 26 Как вы можете видеть выше объекта, возвращенного не заполняется по желанию. Ниже вы можете видеть, что я правильно указано время начала и окончания. > As.POSIXct (головка (индекс (ы), 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1 ] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. 110 0 26 Как вы можете видеть выше объекта, возвращенного не заполняется по желанию. Ниже вы можете видеть, что я правильно указано время начала и окончания. > As.POSIXct (головка (индекс (ы), 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1 ] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. 110 0 26 Как вы можете видеть выше объекта, возвращенного не заполняется по желанию. Ниже вы можете видеть, что я правильно указано время начала и окончания. > As.POSIXct (головка (индекс (ы), 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1 ] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. 1) - 60) [1] "2010-09-10 9:31:00 EDT"> as.POSIXct (хвост (индекс (ы), 1)) [1] «2010-09-10 16:00:00 EDT»> Может быть, это потому, что диапазон дат имеет временную зону, указанную в то время как оригинальный индекс POSIX не делает? Я пытался удалить TZ по specifiying TZ = «», но это не снимает его. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь. Это, как говорится, время-зона может быть только отвлекающим маневром. Я сохранил данные в двоичном () формате RDA, если кто-то заинтересован в тестировании: http://www.speedyshare.com/files/28576853/test.rda Цените помощь.
codingknob
1

голосов
1

ответ
1.8k

Просмотры

питон: os.walk электронного диска не работает

Простой код: импорт ОС filenamelist = [] #path = "E: \ л \ л \ л" путь = "C: \ Program Files \ Console2" для файлов в os.walk (путь): filenamelist.append (файлы) для печати файлы указанных работ. Но когда я установил путь = «E: \ бла \ бла \ бла» скрипт запускается, но возвращает ничего. 1) C: \ Users \ гостевую> питона "прочитать files.py" ( 'C: \\ Program Files \\ Console2', [], [ 'console.chm', 'Console.exe', 'console.xml' , 'ConsoleHook.dll', 'FreeImage.dll', 'FreeImagePlus.dll']) 2) C: \ Users \ гость> питон "прочитать files.py" C: \ Users \ гость> Любая идея, почему os.walk ( ) это трудное время с E: \? Я не могу заставить его прочесть что-нибудь на E :. У меня есть внешний диск, отображенный на E диск.
codingknob
3

голосов
1

ответ
132

Просмотры

insert new non-existing column in how= of resample

Я читал ресэмплировать в dataframe с различными функциями применяются к каждому столбцу? Раствор: frame.resample ( «1H», как = { «излучение»: np.sum, «Tamb»: np.mean}) Скажем, если я хочу добавить несуществующий столбец результата, который хранит значение какой-либо другой функции, скажем, граф (). В приведенном примере, скажем, если я хочу, чтобы вычислить количество строк в каждом периоде 1H. Можно ли сделать: frame.resample ( '1H', как = { 'излучение': np.sum 'Tamb': np.mean, \ 'new_column': число ()}) Обратите внимание, new_column не является существующим столбец в исходном кадре данных. Причина, почему я спрашиваю, что мне нужно сделать это, и у меня есть очень большой фрейм данных, и я не хочу, чтобы дискретизация оригинального DF дважды только, чтобы получить отсчеты в период RESAMPLE. Я' м, пытаясь выше прямо сейчас, и это, кажется, принимает очень долгое время (без синтаксических ошибок). Не уверен, что если питон в ловушке в какой-то навсегда петли. Обновление: Я реализовал предложение использовать AGG (спасибо любезно для этого). Тем не менее, я получил следующее сообщение об ошибке при вычислении первого агрегатора: сгруппированный = df.groupby ([ 'имя1', pd.TimeGrouper ( 'М')]) возвращает pd.DataFrame ({ 'new_col1': сгруппировано [ 'col1'] [группировать [ 'col1']> 0] .agg ( 'сумма') ... /Users/blahblah/anaconda/lib/python2.7/site-packages/pandas/core/groupby.pyc в __getitem __ (я, ключ ) 521 522 Защита __getitem __ (я, ключ): -> 523 рейз NotImplementedError ( 'Не реализовано:% s' % ключ) 524 525 Защита _make_wrapper (я, имя): NotImplementedError: Не реализовано: Истинные следующие работы, когда я использую grouped.apply (Foo). new_col1 = GRP [ 'col1'] [GRP ​​[ 'col1']> 0] .sum ()
codingknob
1

голосов
2

ответ
1.8k

Просмотры

Matplotlib pnpoly пример результатов в ошибке

Я побежал следующий код, как на пример здесь: http://matplotlib.org/faq/howto_faq.html#test-whether-a-point-is-inside-a-polygon я любезно ценю вашу помощь. Спасибо. >>> импорт NumPy, как нп >>> импорт matplotlib.nxutils как пх >>> Verts = np.array ([[0,0], [0, 1], [1, 1], [1,0]] , поплавок) >>> nx.pnpoly (0.5, 0.5, Verts) Traceback (самый последний вызов последнего): Файл "", строка 1, в файле «C: \ python27 \ Lib \ сайт-пакеты \ Matplotlib \ nxutils.py », строка 26, в pnpoly возврата p.contains_point (х, у) Файл "C: \ python27 \ Lib \ сайт-пакеты \ Matplotlib \ path.py", строка 289, в contains_point преобразования = transform.frozen () AttributeError: 'поплавок' объект не имеет атрибута 'замороженными' >>> nx.pnpoly (0.5, 1.5, VERTS) Traceback (самые последний вызов последнего): Файл "",
codingknob
4

голосов
1

ответ
4.8k

Просмотры

IPython --pylab на Cygwin: TclError: без имени дисплея и нет переменного $ DISPLAY среды

Я недавно установил IPython в соответствии с инструкциями здесь: http://ardiyu07.blogspot.com/2012/04/ipython-012-installation-in-cygwin.html. Когда я бегу «IPython --pylab» Я получаю сообщение об ошибке ниже. Я гугл вокруг и обнаружил проводки об этой ошибке, но в другом контексте. Шахта происходит, когда я запускаю IPython с --pylab аргументом. Я знаю, что это имеет какое-то отношение к взаимодействию Matplotlib графического интерфейса, но не уверен, что именно. Я ценю руководство. $ IPython --pylab Python 2.7.3 (по умолчанию, 18 декабря 2012 13:50:09) Введите "авторское право", "кредиты" или "лицензия" для получения дополнительной информации. IPython 0.13.1 - Усовершенствованный интерактивный Python. ? -> Введение и обзор функций IPython в. % QuickRef -> Краткий справочник. помощь -> собственной системы помощи Питона. объект? -> Подробнее о «объекта», используйте «объект ??» для дополнительных деталей. Добро пожаловать в pylab, Matplotlib-среда, основанная на Python [бэкенд: TkAgg]. Для получения дополнительной информации, типа "помощь (pylab). [TerminalIPythonApp] цикл графического интерфейса событие или pylab Сбой инициализации ---------------------------------------- ----------------------------------- TclError Traceback (самый последний вызов последнего) / USR / Lib / python2. 7 / сайт-пакеты / IPython / ядро ​​/ interactiveshell.pyc в enable_pylab (я, графический интерфейс, import_all) 2780 # Теперь мы должны активировать графический интерфейс pylab хочет использовать, и исправить% пробег принять 2781 обновления # сюжетных во внимание -> 2782 self.enable_gui (GUI) 2783 self.magics_manager.registry [ 'ExecutionMagics']. default_runner = \ 2784 mpl_runner (self.safe_execfile) / USR / Библиотека / python2.
codingknob
6

голосов
2

ответ
21.8k

Просмотры

sql update table set - The multi-part identifier could not be bound

I have 2 tables: Table1 = names of gas stations (in pairs) Table2 = has co-ordinate information (longitude and latitude amongst other things) Example of Table1: StationID1 StationID2 Name1 Name2 Lattitude1 Longitude1 Lattitude2 Longitude2 Distance ------------------------------------------------------------------------------------------------ 93353477 52452 FOO BAR NULL NULL NULL NULL NULL 93353527 52452 HENRY BENNY NULL NULL NULL NULL NULL 93353551 52452 GALE SAM NULL NULL NULL NULL NULL Example of Table2: IDInfo Name Lattitude Longitude ------------------------------------------- 93353477 BAR 37.929654 -87.029622 I want to update this table with the coordinate information which resides in tableA. I tried to do the following as per SQL Server 2005: The multi-part identifier … could not be bound update table1 set t1.[Lattitude1] = t2.[Lattitude] from table1 t1 left join table2 t2 on (t1.StationID1 = t2.IDInfo) I get the following error message: Msg 4104, Level 16, State 1, Line 1 The multi-part identifier "t1.Lattitude1" could not be bound. However, if I do the following it works which I can then store into another table. SELECT t1.[StationID1] ,t1.[StationID2] ,t1.[Name1] ,t1.[Name2] ,t2.[Lattitude] AS [Lattitude1] ,t2.[Longitude] AS [Longitude1] ,t3.[Lattitude] AS [Lattitude2] ,t3.[Longitude] AS [Longitude2] from table1 t1 left join table2 t2 on (t1.StationID1 = t2.IDInfo) left join table2 t3 on (t1.StationID2 = t2.IDInfo) I am very new to SQL and am having a difficult time understanding why some things work and others don't. Based on the link I posted above my initial query should have worked - no? Perhaps I'm not thinking straight as I have spent many hours trying this and I finally got help from a co-worker (she suggested the approach I mention above).
codingknob
2

голосов
3

ответ
4.1k

Просмотры

R cbind XTS объекты результатов в добавленном / дубликате строки

Я хочу, чтобы объединить три XTS объекты вместе с cbind:> OIH.tmp SMH.tmp SU.tmp cbind (OIH.tmp, SU.tmp, SMH.tmp) OIH SU SMH апреля 2011 NA NA NA NA Май 2011 -9,4 NA Июнь 2011 NA NA -6,9 июля 2011 NA NA -2,3 августа 2011 NA NA -18,1 сентября 2011 NA NA -22,6 октября 2011 NA NA 22,7 ноября 2011 NA NA -6,1 декабря 2011 NA NA NA NA декабря 2011 -4,0 NA Январь 2012 7,7 18,0 9,3 февраль 2012 5,1 4,1 2,9 Март 2012 -6,9 -9,4 3,7 апреля 2012 -2,6 -4,7 -5,0 Обратите внимание, что существует дополнительная / повторяющиеся строки для декабря 2011 года, которые я не хочу. Я могу думать о запутанных путях достижения моей конечной цели (здесь), но я уверен, что там должно быть что-то более простым / элегантным - объединить по индексу одного объекта возможно. Это кажется достаточно простым, но я ве прочитать документацию для cbind и слияния и не нашли простое решение. Я на самом деле есть ряд объектов, которые я хочу, чтобы объединить / слияния. Я просто использовал 3 вы видите здесь, чтобы проиллюстрировать эту проблему. Я использую следующую команду, чтобы построить ряд возврата: oneMonthReturn dput (tickers.tmp) с ( "DJI", "ГССР", "IXIC", "GSPTSE", "XLE", "OIH", "ХОР", " XLI», "XLB", "XLF", "XRT", "XLK", "SMH", "XLY", "XLP", "XLU", "XLV", "PPH", "МОО", "ГЖД" , "SLV", "GDX", "TLT", "X", "SU", "ТСК", "ACHN", "IDIX", "БГ")> dput (oneMonthReturn) структура (с (НС,
codingknob
2

голосов
1

ответ
1.7k

Просмотры

adjustOHLC - need solution to loop through character vector of tickers

То, что я хочу сделать, это довольно легко, но я не был в состоянии понять это. Я думал, что я мог бы сделать что-то подобное тому, что описано здесь, у меня есть характер вектор линеечки, которые XTS OHLC объекты, возвращаемые getSymbols. Я хочу Переберите каждый тикер в символах и передать символ в adjustOHLC для корректировки расколов: символы = с ( «FCX», «Шпион») для (символов в символах) {возвращение (adjustOHLC (символ, отрегулировать = с (» сплит "), use.Adjusted = FALSE))} кажется adjustOHLC не перекачивает значение переменной 'символ': отладки: ДИВ symbol.name [1] "символ" Просмотр [2]> Ошибка в download.file ( паста (yahoo.URL, Symbol.name, "а = &", from.m "& Ь =",: не может открыть URL «http://ichart.finance.yahoo.com/table.csv?s=symbol&a=0&b = 01 & с = 1970 & d = 3 & е = 14 & имя, «& а =», from.m, «& Ь =»: не удается открыть: HTTP статус был «404 Not Found» Я думал, что я мог бы также сделать использование lapply, чтобы сделать это быстрее, но думаю, что я застрял с вышеизложенным выпустить первый. lapply (символы, функция (х) adjustOHLC (х, отрегулируйте = с ( "раскол"), use.Adjusted = FALSE)) Кажется, достаточно легко - я прошу прощения, если это так тривиально. Цените помощь.
codingknob
11

голосов
2

ответ
5.3k

Просмотры

как установить AWSCLI на распределение питона Anaconda

Я следовал инструкциям, как за: https://bioconda.github.io/recipes/awscli/README.html#installation исполненные: Конда установить awscli Результат: Выборка метаданных пакета: .... Решение спецификации пакета:. Ошибка: Пакет отсутствует в текущих OSX-64 каналов: - awscli Вы можете найти этот пакет на anaconda.org с анаконды поиска -t Конда awscli Вам может понадобиться установить анаконда-клиент командной строки клиента с Конда установить анаконда-клиент
codingknob
3

голосов
2

ответ
989

Просмотры

settingWithCopyWarning панды настройки с помощью индекса

Я пытаюсь установить значение столбца в dataframe, выбрав с помощью индекса. myindex = (DF [ 'город'] == old_name) & (DF [ 'дт']> = StartDate) & (DF [ 'дт'] <EndDate) новое_имя = 'Boston2 DF [' proxyCity ']. IX [myindex ] = new_name в приведенном выше, я хочу, чтобы присвоить значение Boston2 в столбце proxyCity данного условия в myindex C: \ Users \ ли \ Anaconda3 \ Lib \ сайта-пакеты \ панда \ ядро ​​\ indexing.py: 132: SettingWithCopyWarning: значение пытается установить на копию кусочка от DataFrame См предостережений в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self._setitem_with_indexer (индексатор, значение) Что такое правильный способ сделать то, что я хочу сделать без введения проблем, как указано в документации. Ответ в этой ссылке, используя панд для выбора строк обусловливающих нескольких эквивалентностей, кажется, делает это так, как я реализовал его. Я не уверен, что это правильный способ сделать это.
codingknob
2

голосов
1

ответ
412

Просмотры

множественным кондиционированной нарезка (панды dataframe)

У меня есть dataframe, который имеет различные столбцы и строки данных. Я хочу, чтобы выбрать все строки, в которых столбец Год = 2015 и столбца Месяц = ​​7. следующие работы: new_result.loc [new_result [ 'Год'] == 2015,:]. LOC [new_result [ 'Месяц'] == 7 ,:] Однако, есть более элегантный способ выразить то же самое? т.е. Меньшее количество текста, потому что я могу видеть, как общий текст может выйти из-под контроля для запроса с несколькими кондиционерами.
codingknob
4

голосов
1

ответ
8.7k

Просмотры

конвертировать .pem в .ppk на MacOS

Есть много С.О. сообщений на эту тему, но большинство из них предназначены для Windows, и использовать графический интерфейс. Все другие сообщения, кажется, используют CLI. Есть ли версия графического интерфейса пользователя PuTTYgen на MacOS / Linux, и если да инструкции о том, как установить / использовать? CLI, кажется, дает мне ошибку. Использование: PuTTYgen (файл_ключа | -t тип [-b биты]) [-C комментарий] [-P] [-q] [-o-выход файл_ключа] [-O типа | -l | -L | -p]> PuTTYgen mykey.pem -t -b 2048 RSA -o mykey.ppk PuTTYgen: не может одновременно загружать и сгенерировать ключ Есть ли что-то не так с моей командой?
codingknob
12

голосов
5

ответ
521

Просмотры

векторизовать процентиль значение столбца B в колонке А (для групп)

Для каждой пары ЦСИ и Dest городов аэропорта я хочу вернуть процентиль столбца заданного значения столбца б. Я могу сделать это вручную, так как такой: например ДФ только с 2 парами SRC / Dest (у меня есть тысячи в моей фактической DF): дт ЦСИ Dest аб 0 2016-01-01 YYZ SFO 548,12 279,28 1 2016-01-01 DFW PDX 111,35 -65,50 2 2016-02-01 YYZ SFO 64,84 342,35 3 2016-02-01 DFW PDX 63,81 61,64 4 2016-03-01 YYZ SFO 614,29 262,83 { 'а': {0: 548,12, 1: +111,34999999999999, 2: +64,840000000000003 , 3: 63,810000000000002, 4: +614,28999999999996, 5: -207,49000000000001, 6: +151,31999999999999, 7: -56,43, 8: 611,37, 9: -296,62, 10: 6417,5699999999997, 11: -376,25999999999999, 12: 465,12, 13: -821,73000000000002, 14: 1270,6700000000001, 15: -1410,0899999999999, 16: +1312,6600000000001, 17: -326,25999999999999, Отметка ( '2017-01-01 00:00:00')}, 'SRC': {0: 'YYZ', 1: 'DFW', 2: 'YYZ', 3: 'DFW', 4: «YYZ », 5: 'DFW', 6: 'YYZ', 7: 'DFW', 8: 'YYZ', 9: 'DFW', 10: 'YYZ', 11: 'DFW', 12: 'YYZ', 13: 'DFW', 14: 'YYZ', 15: 'DFW', 16: 'YYZ', 17: 'DFW', 18: 'YYZ', 19: 'DFW', 20: 'YYZ', 21: 'DFW', 22: 'YYZ', 23: 'DFW', 24: 'YYZ', 25: 'DFW'}} Я хочу процентиль в каждой группе из Src и Dest пар. Так должно быть только 1 значение процентиля для каждой пары. Я только хочу, чтобы выполнить процентиль заданного б, где дата = 2017-01-01 для каждого ГКЗА и Dest пары по всему столбцу а для каждой пары. Смысл? Я могу сделать это вручную, например, для конкретной пары т.е. SRC = YYZ и Dest = SFT: от SciPy статистика импорта импорта DateTime в дт импорта панд как П.Д. p0 = dt.datetime (2017,1,1) # позволяют ломтик пеленгационного ЦСИ = YYZ и приемник = SFO х = ДФ [(df.src == 'YYZ') & (df.dest == 'SFO') и (df.dt == р0)]. b.values ​​[0] # дано в то, что процентиль это падение в течение всей колонны а для YYZ, SFO stats.percentileofscore (DF [ «а»], х) 61,53846153846154 в приведенном выше случае, я сделал это вручную для пар YYZ и SFO. Тем не менее, у меня есть тысячи пар в моем ФР. Как векторизации это с помощью функции панд, а не пробегаем по каждой паре? Там должен быть способ использовать GroupBy и использовать наносить на функции? Мой желаемый ДФ должен выглядеть примерно так: ЦСИ Dest процентиль 0 YYZ SFO 61,54 1 DFW PDX 23. 07 2 XXX YYY blahblah1 3 AAA BBB blahblah2 ... ОБНОВЛЕНИЕ: Я реализовал следующее: b_percentile_a четкости (DF, X, Y, B): г = D [(DF [ 'SRC'] == х) & (DF [ 'Dest'] == у)] ар = stats.percentileofscore (г, б) возвращают г b_vector_df = ДФ [df.dt == р0] b_vector_df [ 'p0_a_percentile_b'] = \ b_vector_df.apply (лямбда х:. b_percentile_a ( DF, x.src, x.dest, XB), ось = 1) Это занимает 5,16 секунды для 100 пар. У меня есть 55000 пар. Таким образом, это займет ~ 50 минут. Мне нужно, чтобы запустить эти 36 раз поэтому его собирается занять несколько дней времени выполнения. Там должна быть более быстрым подходом? дт == р0] b_vector_df [ 'p0_a_percentile_b'] = \ b_vector_df.apply (лямбда х: b_percentile_a (DF, x.src, x.dest, XB), ось = 1) Это занимает 5,16 секунды для 100 пар. У меня есть 55000 пар. Таким образом, это займет ~ 50 минут. Мне нужно, чтобы запустить эти 36 раз поэтому его собирается занять несколько дней времени выполнения. Там должна быть более быстрым подходом? дт == р0] b_vector_df [ 'p0_a_percentile_b'] = \ b_vector_df.apply (лямбда х: b_percentile_a (DF, x.src, x.dest, XB), ось = 1) Это занимает 5,16 секунды для 100 пар. У меня есть 55000 пар. Таким образом, это займет ~ 50 минут. Мне нужно, чтобы запустить эти 36 раз поэтому его собирается занять несколько дней времени выполнения. Там должна быть более быстрым подходом?
codingknob
2

голосов
1

ответ
93

Просмотры

питон присваивание переменной с использованием временных сегментов

Это больше новичка питона вопроса. У меня есть панды dataframe tmp_df, который я нарезать с использованием 3 даты-времени входы следующим образом, чтобы извлечь различные временные диапазоны данных: tmp_daily_df = tmp_df.loc [IDX [ежедневно [1]: ежедневно [2]] ,:] tmp_weekly_df = tmp_df.loc [IDX [еженедельно [1]: еженедельно [2]] ,:] tmp_monthly_df = tmp_df.loc [IDX [ежемесячно [1]: ежемесячно [2]] ,:] Тогда я передать полученные 3 dataframes к функции называется compute_stats ( ), который вычисляет различные статистические данные и выполняет некоторые манипуляции с входным dataframe (т.е. tmp_daily_df). Одним из таких манипуляций добавляет несколько новых столбцов tmp_daily_df и т.д. final_daily_df = compute_stats (tmp_daily_df, 'M', ''). Reset_index (падение = True) final_weekly_df = compute_stats (tmp_weekly_df, 'M', ''). Reset_index (капля = True) final_monthly_df = compute_stats (tmp_monthly_df, 'M', '').
codingknob
12

голосов
4

ответ
11.2k

Просмотры

Почему Peewee включая столбец «ид» в тузде запрос на выборку?

Я пытаюсь научиться использовать Peewee с MySQL. У меня есть существующая база данных на сервере MySQL с существующей таблицей. Таблица пуста (я просто тестирование прямо сейчас). >>> дб = MySQLDatabase ( 'НХЛ', пользователь = 'корень', PASSWD = 'blahblah') >>> db.connect () >>> расписание занятий (модель): ... дата = DateField () .. . команда = CharField () ... класс Meta: ... база = дб >>> тест = schedule.select () >>> тест ВЫБРАТЬ t1.`id`, t1.`date`, t1.`team` FROM `nhl` AS t1 [] >>> test.get () я получаю следующее сообщение об ошибке: Traceback (самый последний вызов последнего): Файл "", строка 1, в файле«/usr/lib/python2.6/site -packages / peewee.py», строка 1408, в получить обратный clone.execute (). следующий () Файл "/usr/lib/python2.6/site-packages/peewee.py", столбец в запрос на выборку? У меня нет столбца ID в таблице, которая уже существует в базе данных. Я просто хочу работать с существующей таблицей и не завишу от PeeWee того, чтобы создать один каждый раз, когда я хочу, чтобы взаимодействовать с базой данных. Здесь я считаю, что ошибка. Результат запроса должен быть пустым, так как таблица пуста, но так как я учусь, я просто хотел попробовать код. Я ценю вашу помощь. EDIT На основе полезных ответов по Wooble и Фрэнсис я прихожу задаваться вопросом, даже ли это имеет смысл для меня, чтобы использовать Peewee или другой ORM, как SQLAlchemy. Каковы преимущества использования ORM вместо того, чтобы просто работают прямые запросы в Python с использованием MySQLDb? Это то, что я ожидаю делать: -автоматически загрузки данных из различных веб-серверов. Большая часть данных в формате XLS или CSV формате. Я могу конвертировать XLS в CSV, используя пакет xlrd. -parsing / обработки данных в список объектов перед вставкой / объемной вставки в таблицу MySQL БД. -running сложных запросов для экспорта данных из MySQL в питон в соответствующие данные структурированных (списки, например) для различных статистических вычислений, что проще сделать в Python вместо MySQL. Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb? -parsing / обработки данных в список объектов перед вставкой / объемной вставки в таблицу MySQL БД. -running сложных запросов для экспорта данных из MySQL в питон в соответствующие данные структурированных (списки, например) для различных статистических вычислений, что проще сделать в Python вместо MySQL. Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb? -parsing / обработки данных в список объектов перед вставкой / объемной вставки в таблицу MySQL БД. -running сложных запросов для экспорта данных из MySQL в питон в соответствующие данные структурированных (списки, например) для различных статистических вычислений, что проще сделать в Python вместо MySQL. Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb? -running сложных запросов для экспорта данных из MySQL в питон в соответствующие данные структурированных (списки, например) для различных статистических вычислений, что проще сделать в Python вместо MySQL. Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb? -running сложных запросов для экспорта данных из MySQL в питон в соответствующие данные структурированных (списки, например) для различных статистических вычислений, что проще сделать в Python вместо MySQL. Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb? Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb? Все, что может быть сделано в MySQL будет сделано там, но я могу запускать сложную регрессию в питоне. -run различные графические пакеты на данных, полученных из запросов. Часть этого может включать в себя использование пакета ggplot2 (от R-проекта), который представляет собой усовершенствованный графический пакет. Так что я буду включать некоторые R интеграции / Python. Учитывая вышеизложенное - это лучшее, что я провожу часы рубил, чтобы узнать, ORM / Peewee / SQLAlchemy или придерживаться прямых запросов MySQL с помощью MySQLDb?
codingknob
3

голосов
1

ответ
970

Просмотры

Повторно формы стека панды dataframe / поместить значение

DF = pd.DataFrame ({ 'ГРАНИЦИ': [ 'ГЕРМАНИЯ', 'Франция', 'ИТАЛИЯ', 'США', 'КАНАДСКО', 'Мексика', 'Индия', 'Китай', 'Япония'], ' ASID ': [21, 32, 99, 77,66,55,44,88,111], 'час1': [2, 2, 2, 4, 4, 4, 6, 6, 6],' HOUR2' : [ 3, 3, 3, 5, 5, 5, 7, 7, 7], 'HOUR3': [8, 8, 8, 12, 12, 12, 99, 99, 99], 'price1': [2, 2, 2, 4, 4, 4, 6, 6, 6], 'price2': [2, 2, 2, 4, 4, 4, 6, 6, 6], 'price3': [2, 2, 2, 4, 4, 4, 6, 6, 6]}) DF = DF [[ 'ASID', 'ГРАНИЦИ', 'час1', 'price1', 'HOUR2', 'price2', 'HOUR3', ' price3' ]] Я пытался повторно формировать это dataframe за прошедший день. Лужение со стеком / поместить значение / расплав и сдвиг столбцов в indicies и т.д., но не смогли достичь своей цели. Нужный выход имеет следующие столбцы: ASID, бордюр, ЧАС, ЦЕНА я хочу, чтобы сложить все [ «час1», «HOUR2», HOUR3' ] в один столбец = ЧАС. Точно так же я хочу, чтобы сложить все [ «price1», «price2», «price3»] в одной колонке = цене, таким образом, что значение в этом поле выровнено с соответствующим значением в столбце HOUR. Существует прямая связь между час1 & price1, HOUR2 & price2, HOUR3 & price3. Я ценю любые указания, вы можете предоставить. таким образом, что значение в этом поле выровнено с соответствующим значением в столбце HOUR. Существует прямая связь между час1 & price1, HOUR2 & price2, HOUR3 & price3. Я ценю любые указания, вы можете предоставить. таким образом, что значение в этом поле выровнено с соответствующим значением в столбце HOUR. Существует прямая связь между час1 & price1, HOUR2 & price2, HOUR3 & price3. Я ценю любые указания, вы можете предоставить.
codingknob
2

голосов
1

ответ
2.3k

Просмотры

mysql.connector, мульти = True, SQL присваивание переменной не работает

SQL-код (все в одном файле, который в конечном счете сохраняется в переменной питона «запроса»): выберите @dtmax: = date_format (макс (дт), «% Y% т») от TABLE_A; удалить из TABLE_B, где DATE_FORMAT (дт, '% Y% м') = @ dtmax; Есть ли MySQL-разъем позволяет использовать присваивание значения переменного, как я сделал в запросе выше. т.е. взять значение максимальных (дата) от TABLE_A и удалить все с этой датой от TABLE_B. питон код: с = conn.cursor (буферном = True) c.execute (запрос, мульти = True) conn.commit () conn.Close () Все, что я знаю, что второй SQL заявление оленья кожа выполнить. Я могу скопировать и вставить код SQL в жабы и запустить его там без каких-либо проблем, но не через библиотеки mysql.connector. Я бы использовал панд, но это наследие сценарий, написанный кем-то другим, и у меня нет времени, чтобы перезаписать все.
codingknob
30

голосов
5

ответ
81.3k

Просмотры

питон «импорт DateTime» против «от даты и времени импорта DateTime»

У меня есть сценарий, который необходимо выполнить следующие действия на различных линиях в сценарии: today_date = datetime.date.today () дата_время = datetime.strp (date_time_string, '% Y-% m-% d% H:% M') В своих импортных заявлениях у меня есть следующий: от даты и времени импорта DateTime импорта DateTime я получаю следующее сообщение об ошибке: AttributeError: «модуль» объект не имеет атрибута «полоски» Если изменить порядок операторов импорта в: импорте DateTime из даты и время импорта DateTime Я получаю следующее сообщение об ошибке: AttributeError: «method_descriptor» объект не имеет атрибута «сегодня» Если я снова изменить оператор импорта для: импорт DateTime Я получаю следующее сообщение об ошибке: AttributeError: «модуль» объект не имеет атрибута «STRP» Что происходит здесь и как я могу получить и работать? Ценить это. Спасибо.
codingknob

Просмотр дополнительных вопросов