我正在使用TensorFlow教程,该教程使用"怪异"格式上传数据.我想使用NumPy或pandas格式的数据,以便我可以将它与scikit-learn结果进行比较.
我从Kaggle获得了数字识别数据:https://www.kaggle.com/c/digit-recognizer/data .
这里是TensorFlow教程的代码(工作正常):
# Stuff from tensorflow tutorial
import tensorflow as tf
sess = tf.InteractiveSession()
x = tf.placeholder("float", shape=[None, 784])
y_ = tf.placeholder("float", shape=[None, 10])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
cross_entropy = -tf.reduce_sum(y_ * tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
Run Code Online (Sandbox Code Playgroud)
在这里,我读取数据,去掉目标变量并将数据分成测试和训练数据集(这一切都正常):
# Read dataframe from training data
csvfile='train.csv'
from pandas import DataFrame, read_csv
df = read_csv(csvfile)
# Strip off the target data and make it a separate …
Run Code Online (Sandbox Code Playgroud) 我有一个pandas数据帧:
lat lng alt days date time
0 40.003834 116.321462 211 39745.175405 2008-10-24 04:12:35
1 40.003783 116.321431 201 39745.175463 2008-10-24 04:12:40
2 40.003690 116.321429 203 39745.175521 2008-10-24 04:12:45
3 40.003589 116.321427 194 39745.175579 2008-10-24 04:12:50
4 40.003522 116.321412 190 39745.175637 2008-10-24 04:12:55
5 40.003509 116.321484 188 39745.175694 2008-10-24 04:13:00
Run Code Online (Sandbox Code Playgroud)
我试图将df ['date']和df ['time']列转换为日期时间.我可以:
df['Datetime'] = pd.to_datetime(df['date']+df['time'])
df = df.set_index(['Datetime'])
del df['date']
del df['time']
Run Code Online (Sandbox Code Playgroud)
我得到:
lat lng alt days
Datetime
2008-10-2404:12:35 40.003834 116.321462 211 39745.175405
2008-10-2404:12:40 40.003783 116.321431 201 39745.175463
2008-10-2404:12:45 40.003690 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从其他列的pandas数据框中生成一个新列,并且我得到一些我不理解的数学错误.这是问题的快照和一些简化的诊断......
我可以生成一个看起来很不错的数据框:
import pandas
import math as m
data = {'loc':['1','2','3','4','5'],
'lat':[61.3850,32.7990,34.9513,14.2417,33.7712],
'lng':[-152.2683,-86.8073,-92.3809,-170.7197,-111.3877]}
frame = pandas.DataFrame(data)
frame
Out[15]:
lat lng loc
0 61.3850 -152.2683 1
1 32.7990 -86.8073 2
2 34.9513 -92.3809 3
3 14.2417 -170.7197 4
4 33.7712 -111.3877 5
5 rows × 3 columns
Run Code Online (Sandbox Code Playgroud)
我可以做简单的数学运算(即度数到弧度):
In [32]:
m.pi*frame.lat/180.
Out[32]:
0 1.071370
1 0.572451
2 0.610015
3 0.248565
4 0.589419
Name: lat, dtype: float64
Run Code Online (Sandbox Code Playgroud)
但是我无法使用python数学库从度数转换为弧度:
In [33]:
m.radians(frame.lat)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-33-99a986252f80> in <module>()
----> …
Run Code Online (Sandbox Code Playgroud) 我试图在城市地图上绘制一堆点,但我很难找到一个效果很好的套餐.看起来Matplotlib Basemap没有包含足够30英里半径的点的详细信息,例如我没有看到一种方法来小规模地添加高速公路和其他区别特征.
因此,我问你是否可以建议如何将这些类型的城市地图特征添加到底图,或者是否有另一个包适用于城市地图上30英里范围的散点图.谢谢你的帮助!
我有两个数据框,第二个是第一个的子集。我现在如何找到第一个数据帧中未包含在第二个数据帧中的部分?例如:
new_dataframe_1
A B C D
1 a b c d
2 e f g h
3 i j k l
4 m n o p
new_dataframe_2
A B C D
1 a b c d
3 i j k l
new_dataframe_3 = not intersection of new_dataframe_1 and new_dataframe_2
A B C D
2 e f g h
4 m n o p
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
编辑:我最初将交叉点称为联合,但后来改变了这一点。
我pandas.DataFrame.resample
用来重新采样随机事件到1小时的时间间隔,我看到非常随机的结果,如果我将间隔增加到2或4小时似乎没有消失.这让我想知道Pandas是否有任何类型的方法来生成平滑密度内核,如高斯核密度方法,带有可调节带宽来控制平滑.我没有在文档中看到任何内容,但我想在发布到开发人员列表服务器之前发布这里,因为这是他们的偏好.Scikit-Learn 正是我想要的高斯核密度函数,所以我会尝试使用它,但它会成为Pandas的绝佳补充.
任何帮助是极大的赞赏!
hourly[0][344:468].plot()
Run Code Online (Sandbox Code Playgroud)
我正在尝试将时间序列索引转换为一天中的秒数,即随着时间的推移秒数从0-86399增加.我目前可以恢复一天中的时间,但我无法以矢量化的方式将其转换为秒:
df['timeofday'] = df.index.time
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢.
pandas ×6
python ×6
ipython ×2
python-2.7 ×2
time-series ×2
datetime ×1
map ×1
resampling ×1
tensorflow ×1