我用熊猫来清理一些数据文件和验证内容。在验证中,我将每一列的内容与一组期望值进行比较。
for col_name, expected in expected_dict.items():
col_values = set(df[col_name])
if not col_values.issubset(expected):
raise ValueError(str(col_values - expected),'in',col_name)
我在NaN上遇到了一些意想不到的行为,具体来说,set(series)将每个NaN作为一个唯一的元素。我想出了
我有一只熊猫数据,如下所示:
Col1 Col2 Col3
0 A 7 NaN
1 B 16 NaN
1 B 16 15
我想要做的是将Col2与Col3交换,其中Col3的值为NaN。根据有关SO的其他帖子和答案,到目前为止,我有以下代码:
df[['Col2', 'Col3']] = df[['Col3', 'Col2']].where(df[['Col3']].isnull())
但是,这似乎没有正常运作,给我以下几点:
Col1
我想在熊猫中实现以下sql等值-
SELECT
A.col1,
A.col2,
A.col3,
A.col4,
A.col5
FROM Table1 A
INNER JOIN Table1 b
ON A.col1 = B.col1 AND
A.col2 = B.col2
WHERE
(A.col3 <> 0) AND
(A.col4 <> B.col4)
我所能完成的熊猫部分是-
#Dataframe dfTable1All contains the columns col1, col
import pandas as pd
d = {"col1":[1,2], "col2":[3,4]}
df = pd.DataFrame(data = d)
print(type(df.col1))
print(type(df["col1"]))
for index, col1 in df.col1.items():
pass
for index, col1 in df["col1"]:
pass
这一产出如下:
<class 'pandas.core.series.Series'&
所以我和熊猫一起研究蟒蛇。我用多种方式收集由时间戳索引的数据。
这意味着我可以有一个索引,有两个可用的特性(而其他的索引有NaN值,这是正常的),或者所有的特性,这取决于。
因此,我的问题是,当我为相同的索引添加具有多个值的数据时,请参见下面的示例:
假设这是我们要添加新数据的集合:
Index col1 col2
1 a A
2 b B
3 c C
这是我们将添加的数据:
Index new col
1 z
1 y
结果是:
Index col1 col2 new col
1
我有一只熊猫DataFrame和MultiIndexing
(Index col 1) (Index col 2) (Data col 1) ....
A a word1
a word2
b word3
B a word4
c word5
现在,我想计算所有具有相同索引列1和索引列2组合的行。我尝试了df.value_counts(),
df
shape square
shape circle
animal NaN
NaN dog
NaN cat
NaN fish
color red
color blue
desired_df
shape square
shape circle
animal dog
animal cat
animal fish
color red
color blue
我有一个df包含需要规范化的信息。
我已经注意到一种模式,它指示如何连接列和规范数据。
如果在Col1 != NaN和Col2 == NaN中,并直接在下一行Col1 == NaN和Col2 != Na
Python 3.4和Pandas 0.15.0
df是一个数据帧,col1是一个列。使用下面的代码,我将检查值10是否存在,并将这些值替换为1000。
df.col1[df.col1 == 10] = 1000
这是另一个例子。这一次,我将根据索引更改col2中的值。
df.col2[df.index == 151] = 500
这两种情况都会产生以下警告:
-c:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the the caveats
我正在处理一个拥有很多功能的庞大数据集。这些特性实际上是int类型,但由于它们具有np.nan值,熊猫将float64类型分配给它们。
我通过迭代每一列将这些特性转换为float32。大约需要10分钟才能完成。有什么办法能加快这次行动吗?
数据从csv文件中读取。数据中有object和int64列。
for col in float_cols:
df[col] = df[col].astype(np.float32)
我试图在我的数据集上同时应用归责和热编码。我知道在应用估算时,数据的维数可能会发生变化,所以我手动处理它。模型运行良好,但后来我决定应用热编码。现在,这个程序没有编译。我正在得到一个尺寸不匹配误差。
test_X = pd.get_dummies(test)
train_X = pd.get_dummies(train)
col_with_missingVal = (col for col in train_X.columns if train_X[col].isnull().any())
for col in col_with_missingVal:
train_X[col + &
我有一个如下所示的系列:(从一个groupby中完成的多个索引)
Value
Col1 Col2
A PY 20
PB 30
B PY 10
PB 50
我想让它看起来像这样:
Value
Col1 Col2
A PY 20
A PB 30
B PY 10
B PB 50
对如何使它工作有什么建议吗?
谢谢你的帮助
编辑:扭曲的问题:
我想将列'Value‘添加到将
我有两个数据帧:df1如下所示:
col0 col1 col1.1 col3
0 a d 1 6
1 b e 5 7
和df2如下:
colx coly
0 a 10
1 b 20
2 d 50
3 e 40
如何将现有的数据文件组合起来,使最终的df看起来像这样呢?
col0 col1 col1.1 col3 colx coly
0 a d 1 6 10 50
1 b e 5 7 2