如何使用 python 将随机数转换为十六进制颜色?
How to convert a random number into a HEX colour with python?
假设我有一个包含以下列的 DataFrame:
import pandas as pd
df = pd.DataFrame({
'strings': ['Wut?', 'Random', 'Citruna', 'FlatEarth', 'ElonMusk'],
'postcode': [97700, 04130, 33210, 00520, 97700]})
问题:
我想创建一个新列,它将采用 df["postcode"] 中的值并将其用作生成随机 HEX 颜色的种子。如何做到这一点?
下面是一个示例,说明如何将 this solution 应用于您的问题。
import numpy as np
import pandas as pd
def color(seed):
np.random.seed(seed)
return '#%02X%02X%02X' % tuple(np.random.randint(0, 255, 3))
df = pd.DataFrame({
'strings': ['Wut?', 'Random', 'Citruna', 'FlatEarth', 'ElonMusk'],
'postcode': ['97700', '04130', '33210', '00520', '97700']
})
df['color'] = df['postcode'].astype(int).apply(lambda x: color(x))
print(df)
# strings postcode color
# 0 Wut? 97700 #E60997
# 1 Random 04130 #FEDC98
# 2 Citruna 33210 #218F90
# 3 FlatEarth 00520 #AC6B9B
# 4 ElonMusk 97700 #E60997
假设我有一个包含以下列的 DataFrame:
import pandas as pd
df = pd.DataFrame({
'strings': ['Wut?', 'Random', 'Citruna', 'FlatEarth', 'ElonMusk'],
'postcode': [97700, 04130, 33210, 00520, 97700]})
问题: 我想创建一个新列,它将采用 df["postcode"] 中的值并将其用作生成随机 HEX 颜色的种子。如何做到这一点?
下面是一个示例,说明如何将 this solution 应用于您的问题。
import numpy as np
import pandas as pd
def color(seed):
np.random.seed(seed)
return '#%02X%02X%02X' % tuple(np.random.randint(0, 255, 3))
df = pd.DataFrame({
'strings': ['Wut?', 'Random', 'Citruna', 'FlatEarth', 'ElonMusk'],
'postcode': ['97700', '04130', '33210', '00520', '97700']
})
df['color'] = df['postcode'].astype(int).apply(lambda x: color(x))
print(df)
# strings postcode color
# 0 Wut? 97700 #E60997
# 1 Random 04130 #FEDC98
# 2 Citruna 33210 #218F90
# 3 FlatEarth 00520 #AC6B9B
# 4 ElonMusk 97700 #E60997