我已经看过,但似乎找不到以下问题的答案。
我有一个与此类似的 pandas 数据框(称之为“df”):
Type Set
1 theGreen Z
2 andGreen Z
3 yellowRed X
4 roadRed Y
Run Code Online (Sandbox Code Playgroud)
我想向数据帧添加另一列(或生成一系列),其长度与数据帧相同(=相等的记录/行数),如果类型包含字符串“Green”,则该列分配数字编码变量(1), (0) 否则。
本质上,我正在尝试找到一种方法来做到这一点:
df['color'] = np.where(df['Type'] == 'Green', 1, 0)
Run Code Online (Sandbox Code Playgroud)
除了通常的 numpy 运算符(<、>、==、!= 等)之外,我需要一种表达“in”或“contains”的方式。这可能吗?任何和所有的帮助表示赞赏!
我有一个数据帧("df")相当于:
Cat Data
x 0.112
x 0.112
y 0.223
y 0.223
z 0.112
z 0.112
Run Code Online (Sandbox Code Playgroud)
换句话说,我有一个类别列和一个数据列,数据值不在类别列的值内变化,但它们可能在不同类别之间重复(即类别'x'和'z'中的值是相同 - 0.112).这意味着我需要从每个类别中选择一个数据点,而不是仅仅对"数据"的唯一值进行子集化.
我这样做的方式是这样的:
aLst = []
bLst = []
for i in df.index:
if df.loc[i,'Cat'] not in aLst:
aLst += [df.loc[i,'Cat']]
bLst += [i]
new_series = pd.Series(df.loc[bLst,'Data'])
Run Code Online (Sandbox Code Playgroud)
然后我可以用它做任何我想做的事.但问题是,这似乎是一种笨拙,不py式的做事方式.有什么建议?
我export new_v = "mynewvar"
在我的.bash_profile文件中设置了一个新的环境变量。我已经跑了source .bash_profile,当我跑的时候$ env,terminal我可以看到新的变量。但是,当我运行os.environ时python,它不在那里。我跑python 3.6.3在IDLE上OSX 10.13.1。有没有办法导出新的环境变量python以便能够访问它们?