我可以从python连接到我的本地mysql数据库,我可以创建,选择和插入单个行.
我的问题是:我可以直接指示mysqldb获取整个数据帧并将其插入现有表中,还是我需要遍历行?
在任何一种情况下,对于一个包含ID和两个数据列以及匹配数据帧的非常简单的表,python脚本会是什么样子?
我有一个'DataFrame`偶尔有缺失值,看起来像这样:
Monday Tuesday Wednesday
================================================
Mike 42 NaN 12
Jenna NaN NaN 15
Jon 21 4 1
Run Code Online (Sandbox Code Playgroud)
我想新添加column到我的数据帧在那里我会计算所有的平均值columns为每row.
意思,因为Mike,我需要
(df['Monday'] + df['Wednesday'])/2,但因为Jenna,我只是使用df['Wednesday amt.']/1
有没有人知道解决由于缺失值导致的这种变化并计算平均值的最佳方法?
我用过了
sklearn.preprocessing.OneHotEncoder
Run Code Online (Sandbox Code Playgroud)
转换一些数据输出是scipy.sparse.csr.csr_matrix
如何将其与其他列合并回原始数据框?
我试着用pd.concat但是得到了
TypeError: cannot concatenate a non-NDFrame object
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个带有twitter数据的UTF-8文件,我试图将它读入Python数据框但我只能得到一个'对象'类型而不是unicode字符串:
# file 1459966468_324.csv
#1459966468_324.csv: UTF-8 Unicode English text
df = pd.read_csv('1459966468_324.csv', dtype={'text': unicode})
df.dtypes
text object
Airline object
name object
retweet_count float64
sentiment object
tweet_location object
dtype: object
Run Code Online (Sandbox Code Playgroud)
使用Pandas读取和强制UTF-8数据到unicode的正确方法是什么?
这并没有解决问题:
df = pd.read_csv('1459966468_324.csv', encoding = 'utf8')
df.apply(lambda x: pd.lib.infer_dtype(x.values))
Run Code Online (Sandbox Code Playgroud)
文本文件在这里:https: //raw.githubusercontent.com/l1x/nlp/master/1459966468_324.csv
我是新来的pandas和matplotlib.无法准确引用绘制我DataFrame的模式如下
schema = StructType([
StructField("x", IntegerType(), True),
StructField("y", IntegerType(), True),
StructField("z", IntegerType(), True)])
Run Code Online (Sandbox Code Playgroud)
喜欢绘制3d图形wrt x,y和z
这是我使用的示例代码
import matplotlib.pyplot as pltt
dfSpark = sqlContext.createDataFrame(tupleRangeRDD, schema) // reading as spark df
df = dfSpark.toPandas()
fig = pltt.figure();
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(df['x'], df['y'], df['z'])
Run Code Online (Sandbox Code Playgroud)
我得到一个空图形图.肯定遗漏了什么.有什么指针吗?
-谢谢
请求-1:打印df
def print_full(x):
pd.set_option('display.max_rows', len(x))
print(x)
pd.reset_option('display.max_rows')
print_full(df)
Run Code Online (Sandbox Code Playgroud)
前十名的结果
x y z
0 301 301 10
1 300 301 16
2 300 300 6
3 299 301 30
4 299 …Run Code Online (Sandbox Code Playgroud) 我有一个这样的df:
Count
1
0
1
1
0
0
1
1
1
0
Run Code Online (Sandbox Code Playgroud)
我想返回1一个新列,如果有两个或多个连续出现1在Count和0如果没有.因此,在新列中,每行将1根据列中满足的此条件获得Count.那么我想要的输出是:
Count New_Value
1 0
0 0
1 1
1 1
0 0
0 0
1 1
1 1
1 1
0 0
Run Code Online (Sandbox Code Playgroud)
我想我可能需要使用,itertools但我一直在阅读它,并没有遇到我需要的东西.我希望能够使用此方法计算任意数量的连续出现次数,而不仅仅是2次.例如,有时我需要连续计算10次,我在这里只使用2.
在 a 上使用groupby/apply链时遇到问题MultiIndex DataFrame:生成的数据框包含两次分组级别!
示例数据框:
df = pandas.DataFrame(dict(a=[1, 2, 3, 4, 5, 6], b=[6, 7, 8, 9, 0, 0]),
index=pandas.MultiIndex.from_product([[1, 2], [3, 4, 5]]))
a b
1 3 1 6
4 2 7
5 3 8
2 3 4 9
4 5 0
5 6 0
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我只是对行求和(我实际上有另一个函数,但它也接受并返回一个数据帧):
df.groupby(level=0).apply(lambda x: x.sum(axis=1))
Run Code Online (Sandbox Code Playgroud)
它给了我以下结果:
1 1 3 7
4 9
5 11
2 2 3 13
4 5
5 6
dtype: int64
Run Code Online (Sandbox Code Playgroud)
所以现在我有三个索引级别,其中一个按加倍分组。当我按两个级别分组时,整个多索引翻了一番:
df.groupby(level=[0,1]).apply(lambda x: x.sum(axis=1))
1 …Run Code Online (Sandbox Code Playgroud) 我试图int在Pandas DataFramewith中 添加一个现有值
>>> df.ix['index 5','Total Dollars'] += 10
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ValueError: Must have equal len keys and value when setting with an iterable.
我认为错误来自datatype于:
>>> print type(df.ix['index 5','Total Dollars']
int64 <class 'pandas.core.series.Series'>
Run Code Online (Sandbox Code Playgroud)
数据框通过CSV文件填充.我尝试从另一个CSV文件加载数据库:
>>> print type(df.ix['index 5','Total Dollars']
int64
Run Code Online (Sandbox Code Playgroud)
什么可能导致这种类型的差异?
有没有人可以提供如何使用Python/Pandas包从csv文件创建zip文件的示例?谢谢
我有一些看起来像这样的数据:
user timestamp value1
a 2007-01-01 7
a 2007-02-02 8
a 2007-02-03 9
b 2007-02-04 1
a 2007-02-05 2
b 2007-02-06 3
b 2007-02-07 4
a 2007-02-08 5
...
Run Code Online (Sandbox Code Playgroud)
每个用户具有不同数量的条目.
我的目标是了解这些条目的生成速度,并输出如下内容:
last_entry median_entry first_entry
user
a 2007-02-08 2007-02-03 2007-01-01
b 2007-02-07 2007-02-06 2007-02-04
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码如下:
gb = df.groupby('user')
time_median = gb['timestamp'].median()
Run Code Online (Sandbox Code Playgroud)
但这给了我DataError: No numeric types to aggregate,大概是因为日期不是数字.
我想可以将日期转换为时间戳,并找到它们的中位数,然后将它们转回date_time对象.这是最好的方式吗?
pandas ×10
python ×10
csv ×3
dataframe ×3
numpy ×3
compression ×1
matplotlib ×1
mysql ×1
mysql-python ×1
scikit-learn ×1
scipy ×1
utf-8 ×1
zip ×1