小编ana*_*tic的帖子

Pandas - 当传入索引时,系列创建会导致NaN?

我正在从数据框创建一个系列,其中df的一列是索引,另一列是该系列的数据.

这是我的代码:

miniframe = attendframe[:20]
s = pd.Series(miniframe.yes, index = miniframe.event)
s[:10]
Run Code Online (Sandbox Code Playgroud)

但是,如果我包含该index = miniframe.event部分,我会得到一个空系列如下:

1159822043    NaN
686467261     NaN
1186208412    NaN
2621578336    NaN
855842686     NaN
2018671985    NaN
488116622     NaN
1273761447    NaN
2688888297    NaN
3870329460    NaN
Run Code Online (Sandbox Code Playgroud)

原始数据框看起来像这样:

         event                                                yes  \
0   1159822043  1975964455 252302513 4226086795 3805886383 142...   
1    686467261  2394228942 2686116898 1056558062 3792942231 41...   
2   1186208412                                                NaN   
3   2621578336                                                NaN   
4    855842686  2406118796 3550897984 294255260 1125817077 109...   
5   2018671985                                                NaN   
6    488116622  4145960786 2550625355 2577667841 1575121941 28...   
7   1273761447 …
Run Code Online (Sandbox Code Playgroud)

python pandas

6
推荐指数
1
解决办法
2087
查看次数

LINQ Union的不同类型 - 动态转换为接口?

我有10个表作为不同的类型呈现给LINQ,但共享完全相同的属性.当我尝试在它们上运行联合时,编译器告诉我:

"Argument 2: cannot convert from 'System.Collections.IEnumerable' to 'System.Collections.Generic.IEnumerable<LINQPad.User.TelJun2011>'"
Run Code Online (Sandbox Code Playgroud)

代码看起来像这样

var jul = (from n in TelJul2011s select n);

var jun = (from p in TelJun2011s select p);

jun.Union(jul).Dump();
Run Code Online (Sandbox Code Playgroud)

我已经完成了我的研究,并且理解不能在不同类型之间执行联合,我也理解,如果它们共享相同的属性,则可以对匿名类型执行联合.这个选项对我来说不起作用,因为我需要所有表中的所有属性,并且不希望必须输出相同的匿名类型10次 - 每个变量一次.我希望编译器根据所有属性相同的事实推断它们都是相同的类型.

我已经尝试使用AsQueryable()类型函数和"as"关键字转换为IEnumberable,Iqueryable,Datatable等.这似乎都不适合我.

我想知道是否通过动态转换为父类型来实现这一点.我无法编辑类的初始声明,因此无法在它们上实现一个通用接口来强制转换.但有没有什么方法可以在使用它们时将类型转换为通用接口,而无需编写从每种类型到父接口的转换?

谢谢你的建议!

c# linq union casting

3
推荐指数
1
解决办法
4076
查看次数

使用dictreader在python中加入两个CSV文件

我知道回答这个问题的信息可能已经在这里了,但作为一个python newby,我一直试图拼凑几个星期的信息,我遇到了一些麻烦.

这个问题Python"join"函数就像unix"join"一样,回答了如何轻松地在两个列表上进行连接,但问题是dictreader对象是可迭代的而不是简单的列表,这意味着还有一层复杂的问题.

我基本上在寻找两个CSV文件的内部联接,使用dictreader对象.这是我到目前为止的代码:

def test(dictreader1, dictreader2):
    matchedlist = []
    for dictline1 in dictreader1:
            for dictline2 in dictreader2:
                if dictline1['member']=dictline2['member']:
                    matchedlist.append(dictline1, dictline2)
                else: continue
    return matchedlist
Run Code Online (Sandbox Code Playgroud)

这在if语句中给了我一个错误,但更重要的是,我似乎无法在iterable中访问字典的['member']元素,因为它说它没有属性" getitem ".

有没有人对如何做到这一点有任何想法?作为参考,我需要将列表保持为可迭代,因为每个文件都太大而无法放入内存中.计划是在另一个for循环中控制整个函数,它一次只能为它提供几行迭代.因此,它将读取左侧文件的一行,遍历整个第二个文件以查找匹配的成员字段,然后连接两行,类似于SQL连接语句.

感谢您提前提供任何帮助,请原谅我的任何明显错误.

python database csv

1
推荐指数
1
解决办法
2450
查看次数

标签 统计

python ×2

c# ×1

casting ×1

csv ×1

database ×1

linq ×1

pandas ×1

union ×1