列表理解以奇怪的格式显示数字
List comprehension showing numbers in a weird format
我有一个这样的 pandas DataFrame:
Transaction
Transaction Amount
Deposit
10.00
Dividend
0.9
Taxes
0.04
我正在应用这样的列表理解:
df['Tax'] = ['0' if i == "Deposit" or i == "Dividend" else df['Transaction Amount'] for i in df['Transaction']]
df['Net Amount'] = [df['Transaction Amount'] if i == "Deposit" or i == "Dividend" else -1 * df['Tax'] for i in df['Transaction']]
然而,对于这两种情况,我都得到了这样一个奇怪的输出:“0 1.00 1 1000.00 2 1000.00 3...”
交易金额是一个 float64,我试着把它变成字符串,看看是否能解决问题,但我总是得到同样的结果。
尝试使用 np.where
而不是列表理解。
import numpy as np
df['Tax'] = np.where(df['Transaction'].isin(['Deposit', 'Dividend']),
0 ,df['Transaction Amount'])
df['Net Amount'] = np.where(df['Transaction'].isin(['Deposit', 'Dividend']),
df['Transaction Amount'], -1*df['Tax'])
输出:
Transaction Transaction Amount Tax Net Amount
0 Deposit 10.00 0.00 10.00
1 Dividend 0.90 0.00 0.90
2 Taxes 0.04 0.04 -0.04
我有一个这样的 pandas DataFrame:
Transaction | Transaction Amount |
---|---|
Deposit | 10.00 |
Dividend | 0.9 |
Taxes | 0.04 |
我正在应用这样的列表理解:
df['Tax'] = ['0' if i == "Deposit" or i == "Dividend" else df['Transaction Amount'] for i in df['Transaction']]
df['Net Amount'] = [df['Transaction Amount'] if i == "Deposit" or i == "Dividend" else -1 * df['Tax'] for i in df['Transaction']]
然而,对于这两种情况,我都得到了这样一个奇怪的输出:“0 1.00 1 1000.00 2 1000.00 3...”
交易金额是一个 float64,我试着把它变成字符串,看看是否能解决问题,但我总是得到同样的结果。
尝试使用 np.where
而不是列表理解。
import numpy as np
df['Tax'] = np.where(df['Transaction'].isin(['Deposit', 'Dividend']),
0 ,df['Transaction Amount'])
df['Net Amount'] = np.where(df['Transaction'].isin(['Deposit', 'Dividend']),
df['Transaction Amount'], -1*df['Tax'])
输出:
Transaction Transaction Amount Tax Net Amount
0 Deposit 10.00 0.00 10.00
1 Dividend 0.90 0.00 0.90
2 Taxes 0.04 0.04 -0.04