小编zay*_*dar的帖子

从浮点数转换为百分比

我想将小数(例如 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% 是一个字符串

python format

5
推荐指数
1
解决办法
2万
查看次数

计算 Pandas DataFrame 中每行的最小值

我有这个数据框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)

python minimum slice dataframe pandas

5
推荐指数
1
解决办法
4228
查看次数

检索 Panda Dataframe 列中列表的最后一个元素

我有这个 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)

python dataframe pandas

3
推荐指数
1
解决办法
1989
查看次数

如何将方法应用于 Pandas Dataframe

我有这个数据框

   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 (理想情况下使用矢量化而不是迭代)(所以理想情况下我不想为每一列输入相同的代码)

python dataframe pandas

2
推荐指数
1
解决办法
534
查看次数

标签 统计

python ×4

dataframe ×3

pandas ×3

format ×1

minimum ×1

slice ×1