我如何读取.csv文件(没有标题),当我只想要一个列的子集(比如总共20列中的第4和第7列)时,使用pandas?我似乎无法做到usecols
我有一个numpy的一维数组,我想找到一个值超过numpy数组中的值的索引的位置.
例如
aa = range(-10,10)
Run Code Online (Sandbox Code Playgroud)
找到位置,超出aa价值的位置5.
我有以下2个数据框:
df_a =
mukey DI PI
0 100000 35 14
1 1000005 44 14
2 1000006 44 14
3 1000007 43 13
4 1000008 43 13
df_b =
mukey niccdcd
0 190236 4
1 190237 6
2 190238 7
3 190239 4
4 190240 7
Run Code Online (Sandbox Code Playgroud)
当我尝试加入这两个数据帧时:
join_df = df_a.join(df_b,on='mukey',how='left')
Run Code Online (Sandbox Code Playgroud)
我收到错误:
*** ValueError: columns overlap but no suffix specified: Index([u'mukey'], dtype='object')
Run Code Online (Sandbox Code Playgroud)
为什么会这样?数据帧确实具有常见的"mukey"值.
我可以使用pandas dropna()功能删除一些或所有列设置为NA's的行.是否有一个等效函数用于删除所有列值为0的行?
P kt b tt mky depth
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 1.1 3 4.5 2.3 9.0
Run Code Online (Sandbox Code Playgroud)
在此示例中,我们希望从数据框中删除前4行.
谢谢!
在Pandas数据帧上进行groupby的最佳方法是什么,但从该组中排除某些列?例如,我有以下数据帧:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 Wheat 5312 Ha 10 20 30
2 Afghanistan 25 Maize 5312 Ha 10 20 30
4 Angola 15 Wheat 7312 Ha 30 40 50
4 Angola 25 Maize 7312 Ha 30 40 50
Run Code Online (Sandbox Code Playgroud)
我想通过列Country和Item_Code进行分组,并且只计算落在Y1961,Y1962和Y1963列下的行的总和.生成的数据框应如下所示:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 C3 5312 Ha 20 40 60
4 Angola 25 C4 7312 Ha 60 80 100
Run Code Online (Sandbox Code Playgroud)
现在我这样做:
df.groupby('Country').sum()
Run Code Online (Sandbox Code Playgroud)
但是,这也会将Item_Code列中的值相加.有什么方法可以指定要在sum()操作中包含哪些列以及要排除哪些列?
我拉使用Python中matplotlib直方图,并想提请代表数据集的平均值的线,覆盖在直方图为虚线(或者一些其它颜色会做太).有关如何在直方图上绘制线条的任何想法?
我正在使用plot()命令,但不确定如何绘制垂直线(即我应该为y轴给出什么值?
谢谢!
我可以删除刻度线
ax.set_xticks([])
ax.set_yticks([])
Run Code Online (Sandbox Code Playgroud)
但这也会删除标签.我可以用任何方式绘制刻度标签而不是刻度线和脊柱
我想基于ZZ列拆分以下数据帧
df =
N0_YLDF ZZ MAT
0 6.286333 2 11.669069
1 6.317000 6 11.669069
2 6.324889 6 11.516454
3 6.320667 5 11.516454
4 6.325556 5 11.516454
5 6.359000 6 11.516454
6 6.359000 6 11.516454
7 6.361111 7 11.516454
8 6.360778 7 11.516454
9 6.361111 6 11.516454
Run Code Online (Sandbox Code Playgroud)
作为输出,我想要一个新的数据帧,其中'N0_YLDF'列分为4个,每个ZZ的唯一值一个新列.我该怎么做?我可以做groupby,但不知道如何处理分组对象.
Y1961 Y1962 Y1963 Y1964 Y1965 Region
0 82.567307 83.104757 83.183700 83.030338 82.831958 US
1 2.699372 2.610110 2.587919 2.696451 2.846247 US
2 14.131355 13.690028 13.599516 13.649176 13.649046 US
3 0.048589 0.046982 0.046583 0.046225 0.051750 US
4 0.553377 0.548123 0.582282 0.577811 0.620999 US
Run Code Online (Sandbox Code Playgroud)
在上面的数据框中,我想获得每行的平均值.目前,我这样做:
df.mean(axis=0)
Run Code Online (Sandbox Code Playgroud)
但是,这也取消了Region列.如何计算平均值并保留Region列
NI
YEAR MONTH datetime
2000 1 2000-01-01 NaN
2000-01-02 NaN
2000-01-03 NaN
2000-01-04 NaN
2000-01-05 NaN
Run Code Online (Sandbox Code Playgroud)
在上面的数据框中,我有一个由列组成的多级索引:
names=[u'YEAR', u'MONTH', u'datetime']
Run Code Online (Sandbox Code Playgroud)
如何恢复为'datetime'作为索引,'YEAR'和'MONTH'作为普通列的数据框?