df
A B
0 a=10 b=20.10
1 a=20 NaN
2 NaN b=30.10
3 a=40 b=40.10
Run Code Online (Sandbox Code Playgroud)
我试过了 :
df['A'] = df['A'].str.extract('(\d+)').astype(int)
df['B'] = df['B'].str.extract('(\d+)').astype(float)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
ValueError:无法将float NaN转换为整数
和:
AttributeError:只能使用带有字符串值的.str访问器,它在pandas中使用np.object_ dtype
我该如何解决 ?
我正在使用itertuples迭代一个pandas数据帧.我也想捕获行号.迭代时:
示例代码:
for row in df.itertuples():
print row['name']
Run Code Online (Sandbox Code Playgroud)
预期产量:
1 larry
2 barry
3 michael
Run Code Online (Sandbox Code Playgroud)
这里1,2,3是行号.我想避免使用计数器并获取行号.有没有简单的方法来实现这个使用熊猫?
我试图迭代一个pandas数据帧并更新值,如果条件满足,但我收到一个错误.
for line, row in enumerate(df.itertuples(), 1):
if row.Qty:
if row.Qty == 1 and row.Price == 10:
row.Buy = 1
AttributeError: can't set attribute
Run Code Online (Sandbox Code Playgroud) 将以下熊猫数据帧转换为键值对的最佳方法是什么
前 :
datetime name qty price
2017-11-01 10:20 apple 5 1
2017-11-01 11:20 pear 2 1.5
2017-11-01 13:20 banana 10 5
Run Code Online (Sandbox Code Playgroud)
后 :
2017-11-01 10:20 name=apple qty=5 price=1
2017-11-01 11:20 name=pear qty=2 price=1.5
2017-11-01 13:20 name=banana qty=10 price=5
Run Code Online (Sandbox Code Playgroud)
请注意,我不希望在我的输出中使用 datetime 键。
我有三个数据框df1,df2和df3。我将它们合并到一个数据帧df中。现在,我想在数据框中找到每个日期的最小值,5%,25%,中位数,90%和最大值,并将其绘制(每个日期的线图),其中X轴具有百分位数,Y轴具有值。
df1
date value
0 2017-11-06 10.20
1 2017-11-06 40.20
2 2017-11-06 35.10
3 2017-11-06 90.45
4 2017-11-06 60.23
df2
date value
1 2017-11-07 110.20
2 2017-11-07 500.26
3 2017-11-07 200.16
4 2017-11-07 350.01
5 2017-11-07 89.20
df3
date value
1 2017-11-08 101.45
2 2017-11-08 160.34
3 2017-11-08 41.54
4 2017-11-08 192.42
5 2017-11-08 111.12
df
date value
0 2017-11-06 10.20
1 2017-11-06 40.20
2 2017-11-06 35.10
3 2017-11-06 90.45
4 2017-11-06 60.23
5 2017-11-07 110.20
6 2017-11-07 500.26
7 …Run Code Online (Sandbox Code Playgroud) 我想将包含纪元时间的时间戳列转换为日期时间(人类可读)。from_unixtime没有给我正确的日期和时间。请帮忙。
df = spark.createDataFrame([('1535934855077532656',), ('1535934855077532656',),('1535935539886503614',)], ['timestamp',])
df.show()
Run Code Online (Sandbox Code Playgroud)
df = spark.createDataFrame([('1535934855077532656',), ('1535934855077532656',),('1535935539886503614',)], ['timestamp',])
df.show()
Run Code Online (Sandbox Code Playgroud)
+-------------------+
| timestamp|
+-------------------+
|1535934855077532656|
|1535934855077532656|
|1535935539886503614|
+-------------------+
Run Code Online (Sandbox Code Playgroud)
df.withColumn('datetime',from_unixtime(df.timestamp,"yyyy-MM-dd HH:mm:ss:SSS")).select(['timestamp','datetime']).show(15,False)
Run Code Online (Sandbox Code Playgroud)