我想将小数(例如 0.33333)转换为百分比(预期答案 33.33%)
我用了以下
x = 0.3333
print(format(x,'.2%'))
Run Code Online (Sandbox Code Playgroud)
这确实给出了 33.33%
但是,结果是一个字符串,我希望它仍然是一个数字(以 % 格式),以便能够对其执行数学运算(例如format(x,'.2%')*2给出 66.66%
但这会引发异常,因为 33.33% 是一个字符串
我有这个数据框df:
A B C D
1 3 2 1
3 4 1 2
4 6 3 2
5 4 5 6
Run Code Online (Sandbox Code Playgroud)
我想添加一个计算最小值的列,通过将 A 列切片到 D 列(实际df更大,所以我需要对其进行切片),即
Dmin
1
1
2
4
Run Code Online (Sandbox Code Playgroud)
我可以计算 1 行的最小值,如下所示
df.iloc[0].loc['A':'D'].min()
Run Code Online (Sandbox Code Playgroud)
我对整个 DataFrame 尝试了以下操作,所有这些都给出了NaN
df['Dmin']=df.loc[:,'A':'D'].min()
df['Dmin']=df.iloc[:].loc['A':'D'].min()
df['Dmin']=df.loc['A':'D'].min()
Run Code Online (Sandbox Code Playgroud) 我有这个 csv 文件示例:(将其读作 AAA 项的成本为 1000,而 AAA(1) 项的成本为 2000)
ColumnName
AAA (1000)
AAA (1) (2000)
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含所有数字的 Pandas 数据框列
IE
Column_cost
1000
2000
Run Code Online (Sandbox Code Playgroud)
我试图用 '(' 来分割它,它返回如下所示的内容(因为第二个项目的名称中有 '(' :
Result 1
Col_1 Col_2 Col_3
AAA 1000) None
AAA 1) 2000)
Run Code Online (Sandbox Code Playgroud)
所以数字不在同一列
然后我尝试创建一列列表,它给出
Result 2
ColumnName2
[AAA,1000)]
[AAA,1),2000)]
Run Code Online (Sandbox Code Playgroud)
但同样,我不知道如何创建一个使用每个列表最后一个元素的列。
我可以为特定索引获取它,但不能为整个列获取它
x = df['ColumnName'].str.split('(',expand=True) gives Result 1 above
x = df['ColumnName'].str.split('(') gives Result 2 above
Run Code Online (Sandbox Code Playgroud)
从结果 2 中,我执行以下操作以获得一个特定单元格的所需结果,但我不知道如何为整列执行此操作(我可以对小数据集执行此操作,但不能对大数据集执行此操作)
检索特定索引的列表,获取列表的最后一个元素,用空格分割,然后检索分割列表的新元素
x[0][-1].split()[0]
x[1][-1].split()[0]
Run Code Online (Sandbox Code Playgroud) 我有这个数据框
Col1 Col2
0 A (1000 EUR) C ( 3000 USD)
1 B (2000 CHF) D ( 4000 GBP)
Run Code Online (Sandbox Code Playgroud)
我想将其转换为
Col1 Col2
0 1000 3000
1 2000 4000
Run Code Online (Sandbox Code Playgroud)
我知道如何为 1 列创建数据框(带索引),但不知道如何为多列创建数据框
这段代码产生这个结果
Col1
0 1000
1 2000
a = z['Col1'].str.split('(').str[-1].str.split().str[0].apply(pd.to_numeric,errors='coerce')
Run Code Online (Sandbox Code Playgroud)
如何修改上面的代码以添加 col2 (理想情况下使用矢量化而不是迭代)(所以理想情况下我不想为每一列输入相同的代码)