Pandas DataFrame помещает NaN и NaT - PullRequest
0 голосов
/ 12 марта 2019

Что я делаю, так это то, что я сгенерировал DataFrame с пандами:

df_output = pd.DataFrame(columns={"id","Payout date", "Amount"}

В столбце «Дата выплаты» указывается дата и время, а в поле «Сумма» - число с плавающей запятой.Я беру значения для каждой строки из CSV:

df=pd.read_csv("file.csv", encoding = "ISO-8859-1", low_memory=False)

, но когда я присваиваю значения:

df_output.loc[df_output['id'] == index, 'Payout date'].iloc[0]=(parsed_date)
pay=payments.get()
ref=refunds.get()
df_output.loc[df_output['id'] == index, 'Amount'].iloc[0]=(pay+ref-for_next_day)

и печатаю его в столбцах «Дата выплаты» и «Amount 'он только правильно печатает id, NaT для выплат и NaN для суммы, даже когда их приводят к плавающим или используя

df_output['Amount']=pd.to_numeric(df_output['Amount'])
df_output['Payout date'] = pd.to_datetime(df_output['Payout date'])

. Я также пытался привести значения перед передачей ихDataFrame, без удачи, так что я получаю вот что:

id Payout date  Amount
1         NaT     NaN
2         NaT     NaN
3         NaT     NaN
4         NaT     NaN
5         NaT     NaN

Вместо этого я ищу что-то вроде этого:

id       Payout date  Amount
1         2019-03-11     3.2
2         2019-03-11     3.2
3         2019-03-11     3.2
4         2019-03-11     3.2
5         2019-03-11     3.2

EDIT

print(df_output.head(5))
print(df.head(5))

id Payout date  Amount
1         NaT     NaN
2         NaT     NaN
3         NaT     NaN
4         NaT     NaN
5         NaT     NaN

id       Created (UTC)    Type Currency  Amount    Fee     Net
1 2016-07-27 13:28:00  charge      mxn   672.0  31.54  640.46
2 2016-07-27 15:21:00  charge      mxn   146.0   9.58  136.42
3 2016-07-27 16:18:00  charge      mxn   200.0  11.83  188.17
4 2016-07-27 17:18:00  charge      mxn   146.0   9.58  136.42
5 2016-07-27 18:11:00  charge      mxn   286.0  15.43  270.57

1 Ответ

0 голосов
/ 13 марта 2019

Вероятно, проще всего было бы просто переименовать столбцы загружаемого вами фрейма данных:

df = pd.read_csv("file.csv", encoding = "ISO-8859-1", low_memory=False, index_col='id')
df.columns(rename={"Created (UTC)":'Payout Date'}, inplace=True)

df_output = df[['Payout Date', 'Amount']]

EDIT: если вы пытаетесь назначить столбец в одном кадре данных столбцу другого, просто сделайте следующее:

output_df['Amount'] = df['Amount']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...