小编Rob*_*ert的帖子

使用np.where基于多个列的pandas多个条件

我试图在两个条件下对大熊猫数据帧的颜色进行着色.例:

如果col1的值> a(浮点)和col3的值 - col3的值<b(浮点数),则col 4的值= string,否则:其他字符串.

我现在尝试了很多不同的方法,我在网上找到的所有方法都只取决于一个条件.

我的示例代码总是引发错误:系列的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().

这是代码.尝试了几个变化没有成功.

df = pd.DataFrame()

df['A'] = range(10)
df['B'] = range(11,21,1)
df['C'] = range(20,10,-1)

borderE = 3.
ex = 0.

#print df

df['color'] = np.where(all([df.A < borderE, df.B - df.C < ex]), 'r', 'b')
Run Code Online (Sandbox Code Playgroud)

顺便说一句:我理解,它说的是什么,但不知道如何处理它...提前谢谢!

python numpy conditional-statements pandas

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

“系列”对象是可变的,因此无法对它们进行散列错误,调用to_csv

我有一个大的数据框(5天,每秒一个值,几列),我想使用python pandas df.to_csv模块将2列保存在csv文件中。

我尝试了不同的方法,但始终收到错误消息:

“系列”对象是可变的,因此不能被散列

我找到了与groupby有关但与文件保存无关的解决方案。有人对我有主意吗?

这是我的数据框的一部分:

DateTime
2015-07-14 00:00:00    414.37
2015-07-14 00:00:00    414.37
2015-07-14 00:00:01    414.29
2015-07-14 00:00:02    414.14
2015-07-14 00:00:03    414.21
2015-07-14 00:00:04    414.05
2015-07-14 00:00:05    414.05
2015-07-14 00:00:06     414.2
2015-07-14 00:00:07    414.54
2015-07-14 00:00:08    414.39
Name: CO2abs, dtype: object DateTime
Run Code Online (Sandbox Code Playgroud)

编辑:对不起-忘记了代码...

df.to_csv('alldatcorr.csv',sep='\t',cols=(df.CO2abs,df.CO2corr))
Run Code Online (Sandbox Code Playgroud)

python csv immutability pandas

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

将 Pandas 列转换为 DateTime II

我正在尝试将一列日期时间字符串转换为 Pandas 可理解的日期时间格式。当然,我已经用谷歌搜索并尝试了几种解决方案。 将 Pandas 列转换为日期时间

这对我来说似乎是最令人鼓舞的,但两种推荐的方法都不适用于我的数据集。详细信息:数据集名称:co,

列:索引列,

格式:15.07.2015 24:00 之前或之后没有更多的空白。

我的努力:

co['newdate'] = pd.to_datetime(co.index, format='%d.%m.%Y %H:%M')
Run Code Online (Sandbox Code Playgroud)

在将 Index-col 转换为名为“Datum”的“正常”列后,我尝试了下一个

co['newdate'] = co['Datum'].apply(lambda x: dt.datetime.strptime(x,'%d.%m.%Y %H:%M'))
Run Code Online (Sandbox Code Playgroud)

错误:时间数据 '15.07.2015 24:00' 与格式 '%d.%m.%Y %H:%M' 不匹配

两种解决方案都会出现此错误。任何人的想法?

python datetime pandas

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

scipy curve_fit在简单的线性拟合中失败了吗?

我打算做一个简单的线性拟合具有两个numpy的阵列y1y2长度54各自的。该函数定义如下:

def f(x,b):
    return b*x
Run Code Online (Sandbox Code Playgroud)

数据绘制在这里:

在此处输入图片说明

然后我尝试通过以下方式拟合:

popt, pcov = scop.curve_fit(f,y2,y1)  # yes y1 and y2 are in right order
Run Code Online (Sandbox Code Playgroud)

结果: popt = 1., pcov = inf

我尝试过p0 = -833,结果差不多是多少,但这给了我popt = -833, pcov = inf

我使用示例函数尝试了一些示例数据:

x = np.array(range(10))
y = x**2 + 3
def fu(x,b):
    return x**2 + b
po, pc = scop.curve_fit(fu,x,y)
print po, pc
Run Code Online (Sandbox Code Playgroud)

结果很好:3和2e-33

有人对第一次审判出了什么问题有想法吗?我还没有发现任何有用的东西或与我的问题有关的信息...

python numpy mathematical-optimization curve-fitting scipy

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