我有一个以熊猫为单位的列。看起来是这样的:
df.LotSizeDimensions.value_counts(dropna=False)
40.00X150.00 2
57.00X130.00 2
27.00X117.00 2
63.00X135.00 2
37.00X108.00 2
65.00X134.00 2
57.00X116.00 2
33x124x67x31x20x118 1
55.00X160.00 1
63.00X126.00 1
36.00X105.50 1
在只有一个X的行中,我想创建一个单独的列,将值相乘。在有多个X的列中,我想返回一个零。这是我想出的密码
def dimensions_split(df: pd.DataFrame):
df.LotSizeDimensions = df.LotSizeDimensions.str.strip()
df.LotSizeDimensions = df.LotSizeDimensions.str.upper()
df.LotSizeDimensions = df.LotSizeDimensions.str.strip('`"M')
if df.LotSizeDimensions.count('X') > 1
return 0
df['LotSize'] = map(int(df.LotSizeDimensions.str.split("X", 1).str[0])*int(df.LotSizeDimensions.str.split("X", 1).str[1]))
这将返回以下错误:
TypeError: cannot convert the series to <class 'int'>
我还想添加一行,如果有X以外的任何非数字字符,则返回零
想法是首先剥离并转换到上列} ,如果只有一个
LotSizeDimensions
到Series
,然后对DataFrame
使用^{X
,则返回多个列0
:我通过列表理解得到:
相关问题 更多 >
编程相关推荐