仅提取 pandas 列中的百分比值
Extracting only the percent value in a column in pandas
我有一个包含字符串的列,最后包含一个百分比,例如 XX: (+2, 30%); (-5, 20%); (+17, 50%) 。
我需要为每个这样的字符串提取最高的 % 值并在整个列上执行此操作。
任何建议将不胜感激!
谢谢
此代码returns具有百分比的列中的最大值
import pandas as pd
import numpy as np
data = [['2.3%', 1],['5.3%', 3]]
data = pd.DataFrame(data)
first_column = data.iloc[:, 0]
percent_list = []
for val in first_column:
percent_list.append(float(val[:-1]))
print(percent_list[np.argmax(percent_list)])
据我了解,XX
列中的每个单元格都是包含一些百分比的单元格。我已经包含了一个我使用过的小测试 DataFrame:
import pandas as pd
import re
df = pd.DataFrame({"XX":["(+2, 30%), (-5, 20%), (+17, 50%)","(+2, 70%), (-5, 20%), (+17, 50%)", ""]})
pattern = re.compile("([0-9\.]+)%")
df["XX"].apply(lambda x: max(pattern.findall(x), default=-1))
输出
0 50
1 70
我有一个包含字符串的列,最后包含一个百分比,例如 XX: (+2, 30%); (-5, 20%); (+17, 50%) 。 我需要为每个这样的字符串提取最高的 % 值并在整个列上执行此操作。 任何建议将不胜感激! 谢谢
此代码returns具有百分比的列中的最大值
import pandas as pd
import numpy as np
data = [['2.3%', 1],['5.3%', 3]]
data = pd.DataFrame(data)
first_column = data.iloc[:, 0]
percent_list = []
for val in first_column:
percent_list.append(float(val[:-1]))
print(percent_list[np.argmax(percent_list)])
据我了解,XX
列中的每个单元格都是包含一些百分比的单元格。我已经包含了一个我使用过的小测试 DataFrame:
import pandas as pd
import re
df = pd.DataFrame({"XX":["(+2, 30%), (-5, 20%), (+17, 50%)","(+2, 70%), (-5, 20%), (+17, 50%)", ""]})
pattern = re.compile("([0-9\.]+)%")
df["XX"].apply(lambda x: max(pattern.findall(x), default=-1))
输出
0 50
1 70