с помощью панд применяются и вводят датафрейм

Очень похожий подход к методу @ DrewStephens, который использует API-интерфейс Java SE TimeUnit (представленный в JDK1.5) вместо простой конкатенации строк и, следовательно, (возможно) немного чище и выразительнее:

public class UnixTimestampDeserializer extends JsonDeserializer<Date> {

    @Override
    public Date deserialize(JsonParser parser, DeserializationContext context) 
            throws IOException, JsonProcessingException {
        String unixTimestamp = parser.getText().trim();
        return new Date(TimeUnit.SECONDS.toMillis(Long.valueOf(unixTimestamp)));
    }
}

Указание вашего пользовательского десериализатора (UnixTimestampDeserializer) в поврежденном поле (f6):

@JsonDeserialize(using = UnixTimestampDeserializer.class)
private Date updatedAt;
0
задан Ken Kim 21 February 2019 в 04:33
поделиться

3 ответа

Я не уверен, что вам нужно, поскольку ожидаемый результат отличается от вашего состояния, здесь я могу только исправить ваш код

for x,y in df.iterrows():
    if y['a'] > y['b']:
        df.loc[x,'a'] = df.loc[x,'b']
    else:
        df.loc[x,'b'] = df.loc[x,'a']

df
Out[40]: 
  id  a  b
0  a  1  1
1  b  2  2
2  c  2  2

Если я правильно понимаю вашу проблему

[ 111]
0
ответ дан WeNYoBen 21 February 2019 в 04:33
поделиться

Как и все остальные, не совсем уверен, что вы пытаетесь сделать, я собираюсь предположить, что вы хотите установить значение либо текущего значения «A», либо «B», чтобы оно было равным наибольшему значений любого столбца в этой строке ... Если это предположение верно, вот как это можно сделать с помощью ".apply ()".

Во-первых, большинство «чистых» приложений (помня, что применение «.apply ()» обычно никогда не рекомендуется) из «.apply ()» используют функцию, которая принимает ввод строки, переданной ей Функция ".apply ()" и обычно возвращает тот же объект, но измененный / измененный / и т. д. по мере необходимости. Имея в виду ваш фрейм данных, это функция для достижения желаемого результата, за которой следует применение функции к фрейму данных с использованием «.apply ()».

# Create the function to be used within .apply()
def comparer(row):
    if row["a"] > row["b"]:
        row["b"] = row["a"]
    elif row["b"] > row["a"]:
        row["a"] = row["b"]
    return(row)

# Use .apply() to execute our function against our column values. Returning the result of .apply(), re-creating the "df" object as our new modified dataframe.
df = df.apply(comparer, axis=1)

Большинство, если не все, похоже, выступают против использования «.apply ()». Я, вероятно, прислушаюсь к их мудрости :)

0
ответ дан 0xhughes 21 February 2019 в 04:33
поделиться

Попробуйте:

df = pd.DataFrame({'a': [1, 2, 6], 'b': [4,5,2]})

df['a'] = df.max(axis=1)
df['b'] = df['a']
0
ответ дан Harsha Biyani 21 February 2019 в 04:33
поделиться
Другие вопросы по тегам:

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